2011-10-21 6 views
2

私はaspxページで動的にusercontrolを読み込もうとしていますが、ポストバックの問題はありますか?私は画像を表示するusercontrolに画像ボタンを持っていますが、ボタンをクリックするとページが更新され、画像が表示されません。私は私がこれを持ってASPXページとバックエンドのコードのプレースホルダーを持っている:動的にusercontrolsを読み込む - ポストバックの問題

protected void Page_Load(object sender, EventArgs e) 
{  

    if (!IsPostBack) 
    { 
      Control uc = Page.LoadControl("~/UserControls/Mycontrol.ascx"); 
      placeholder1.Controls.Add(uc); 

    } 
} 

私はpage_preinitまたはpage_initに何かをする必要がありますか?

答えて

2

ページに追加された動的コントロールは、最初のものだけでなく、すべてのポストバックに追加する必要があります。 !IsPostBack状態を削除します。第2に、initやpreinitの間に追加する必要があります。これは、viewstateが適切にキャプチャされ、復元されるためです(ASP.NETはinitイベントとloadイベントの間でビューステートを復元します)。

+0

ガイズPage_initでコントロールを読み込む、この1 http://geekswithblogs.net/chrishan/archive/2007/03/27/109988.aspxをチェック – Gaby

5

それぞれのポストバックのPage_initには常にユーザーコントロールを再読み込みする必要があります。

1

コントロールにIDを付けても

uc.ID = "your id"; 
関連する問題