Программно добавить объект пользовательского веб-элемента управления в другой пользовательский элемент управления
У меня есть веб-форма, в которую я загружаю пользовательский веб-элемент управления (A)
при нажатии кнопки на элементе управления A загружается массив другого веб-элемента управления с именем infobox
когда я добавляю пользовательский элемент управления для управления коллекцией веб-элемента управления A, он не отображается.
Ниже приведен код: при нажатии кнопки элемента управления A
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 код для управления InfoBox
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>
также пытался добавить элементы управления на страницу не работает
1 ответ
Вам не следует создавать экземпляр UserControl с помощью конструктора, а с помощью LoadControl, если вы хотите добавить его в коллекцию элементов управления страницы.
InfoBox ib = (InfoBox)LoadControl("InfoBox.ascx");
Кроме того, почему вы устанавливаете элемент управления на null
? Он будет удален автоматически в конце жизненного цикла страницы.