2011-01-12 20 views
2

メニューリンクはマスターページにあり、対応するクリックイベントはマスターページ自体に書き込まれます。私は1つのコンテンツページしか持っていません。データはDB内のhtml形式で保存され、対応するメニューリンクのクリックでコンテンツページにレンダリングされます。しかし、問題はコンテンツページの負荷がマスターページの前に発生して、コンテンツページが空白になることです。ここに私のコード -マスターページからコンテンツページを更新するには?

public void GetLinkPage(Int32 linkId)//master page 
{ 
    LinkContentEnitity linkContent = new LinkContentEnitity(); 
    linkContent = PageController.GetPageContent(linkId);    
} 

linkContentは、そのコンテンツページをHTML形式で含んでいます。この値をコンテンツページに印刷するにはどうすればよいですか?

+0

あなたはマスターとコンテンツの両方のためのPage_Loadと同様にしてくださいクリックイベントのイベントハンドラを表示することができますか? – Greg

答えて

3

完全にはっきりしているわけではありませんが、コンテンツページに、マスターページのPage_Loadイベントで生成された独自のLoadイベントに関する情報が必要だと思われますか?

だからあなたのコンテンツページにPreRenderGetPageLink()を呼び出すコードを移動したり、Page_LoadComplete()ためContentPageでのイベントハンドラを追加します(ページ上のすべての子コントロールがロードされた後に起動する)と、そこからGetPageLink()を呼び出して、あなたのレンダリングを行うのいずれか、例えばコンテンツページ:

protected override void OnInit(EventArgs e) 
{ 
    Page.LoadComplete += new EventHandler(Page_LoadComplete); 
} 
protected void Page_LoadComplete(object sender, EventArgs e) { 
    // do stuff here, instead of OnLoad/Page_Load event 
} 

ところで、これはイベントオーダーの参考になります。入れ子になったコントロール(マスター/コンテンツ、ユーザーコントロールなど)を扱うときには、あなたが抱えている問題は非常に簡単です。イベントの順序をよく理解するのに役立ちます。

http://msdn.microsoft.com/en-us/library/dct97kc3.aspx

1

これを行うには1つの方法があります。コンテンツページで、必要な作業を行うパブリックメソッドを追加します。マスターページでthis.Pageをページクラスにキャストし、そのメソッドを呼び出します。

関連する問題