2012-01-05 1 views
0

にWebユーザーコントロールのオブジェクトを追加しますinfoboxはプログラムiはWebユーザーコントロール(A)</p> <p>制御Aのボタンがクリックされたとき、それはの配列をロードするロードiはこれにウェブフォームを持っている別のユーザーコントロール

という名前の別のWebユーザーコントロールWebユーザーコントロールAのコントロールコレクションにユーザーコントロールを追加すると表示されません。以下

コードです:コントロールのボタンクリックI HTML以下

foreach (Categories category in CategoriesDataList) 
      { 
       InfoBox ib = new InfoBox(); 
       ib.LiteralName = category.Category_Name; 
       span_tempList.Controls.Add(ib); 
       ib = null;   
      } 



span_tempList is a `<span>` tag with `runat=server` 

とCSコードにインフォボックスコントロールのために

public partial class InfoBox : System.Web.UI.UserControl 
    { 
     protected global::System.Web.UI.WebControls.Label ltrlName = new System.Web.UI.WebControls.Label(); 

     protected void Page_Load(object sender, EventArgs e) 
     { 

     } 

     public InfoBox() 
     { 

     } 

     public string LiteralName 
     { 
      get { return ltrlName.Text; } 
      set { ltrlName.Text = value; } 
     } 

    } 

--HTML--

<div style="width:10%;float:left;"> 
     <asp:Label ID="ltrlName" runat="server" Text="Label"></asp:Label> 
    </div> 
    <div style="width:20%;float:left;"> 
     <asp:Image ID="imgPicture" runat="server" ImageUrl="" /> 
    </div> 
    <div style="width:70%;float:right;"> 

    </div> 

また、ページにコントロールを追加しようとしたが動作しない

+0

Pageコンストラクタ内のページのIsPostBackプロパティがtrueまたはfalseであるかどうかを確認しましたか? –

答えて

3

コンストラクタを使用してUserControlのインスタンスを作成するのではなく、LoadControlを使用してページのコントロールコレクションに追加する必要があります。

InfoBox ib = (InfoBox)LoadControl("InfoBox.ascx"); 

また、なぜあなたはnullに制御を設定していますか?ページライフサイクルの終わりに自動的に廃棄されます。

+0

ありがとうございました。感謝しましたが、 '' InfoBox.ascx.cs "'私には '' .ascx'ファイルパスだけがエラーだったので、 '' LoadControl'が要求していました。 – RohitWagh

関連する問題

 関連する問題