我有一个网页表单,我加载了一个Web用户控件(A)
当单击控件A上的按钮时,它会加载另一个名为infobox
当我添加用户控件以控制Web用户控件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 Code for 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>
还试图将控件添加到页面不起作用
答案 0 :(得分:3)
如果要将其添加到页面的控件集合中,则不应通过构造函数创建UserControl的实例,而应使用LoadControl。
InfoBox ib = (InfoBox)LoadControl("InfoBox.ascx");
另外,为什么要将控件设置为null
?它将在页面生命周期结束时自动处理。