2012-01-05 40 views
0

我有一個web表單中,其我加載web用戶控制(A)編程添加web用戶控制對象到另一個用戶控制

一個當被點擊控制甲一個按鈕它加載的陣列另一個Web用戶控件命名爲infobox

當我在添加用戶控件來控制它不顯示網頁用戶控件的集合。

下面

是代碼:對控制甲

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` 

的按鈕點擊下面我HTML和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

你檢查,看是否該頁面在頁面構造IsPostBack屬性是真是假? – 2012-01-05 13:26:22

回答

3

你不應該通過構造函數,但通過使用LoadControl如果你想將其添加到頁面的控制集合創建一個用戶控件的一個實例。

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

而且,你爲什麼設置控制null?它將在頁面生命週期結束時自動處理。

+0

感謝您的幫助。它幫助我,並能夠以編程方式加載控件..謝謝但「InfoBox.ascx.cs」'給了我錯誤,它只是'LoadControl'所要求的'.ascx'文件路徑。 – RohitWagh 2012-01-06 05:32:11