我有一个网络表单,我在LinkButton
中添加了Page_Load
,如下所示:
protected void Page_Load(object sender, EventArgs e)
{
//Parent <ul>
HtmlGenericControl ul = new HtmlGenericControl("ul");
pnl1.Controls.Add(ul);
for (int i = 1; i <= 3; i++)
{
HtmlGenericControl parentli = new HtmlGenericControl("li");
LinkButton parentlnk = new LinkButton();
parentli.Controls.Add(parentlnk);
parentlnk.ID = "lnkparent" + i.ToString();
parentlnk.Text = "Parent link" + i.ToString();
ul.Controls.Add(parentli);
//Child <ul>
HtmlGenericControl childul = new HtmlGenericControl("ul");
parentlnk.Controls.Add(childul);
HtmlGenericControl childli = new HtmlGenericControl("li");
childul.Controls.Add(childli);
LinkButton childlk = new LinkButton();
childlk.ID = "lnkchild" + i.ToString();
childlk.Text = "link_child" + i.ToString();
childli.Controls.Add(childlk);
}
}
但输出是:
正确的页面应该是这样的:
我测试了parentlnk.Attributesa.add("Text","Parent link")
或parentlnk.Attributesa.add("Value","Parent link")
,但他们无法正常使用。
这个问题有解决方法吗?
感谢。
答案 0 :(得分:0)
将这两行一起使用就是你的问题
parentlnk.Text = "Parent link" + i.ToString();
parentlnk.Controls.Add(childul);
当您向parentlnk添加控件时,它将删除您在Text中设置的任何内容。
您需要做的是创建一个Label类并将其作为控制器添加到parentlnk