我试图在页面加载阶段中从后面的代码向页面添加控件,如下所示:
foreach (FileInfo fi in dirInfo.GetFiles())
{
HyperLink hl = new HyperLink();
hl.ID = "Hyperlink" + i++;
hl.Text = fi.Name;
hl.NavigateUrl = "../downloading.aspx?file=" + fi.Name + "&user=" + userIdpar;
Page.Controls.Add(hl);
Page.Controls.Add(new LiteralControl("<br/>"));
}
我收到的错误在
Page.Controls.Add(hl)
上,这是解释:我该怎么做才能解决此问题?提前致谢。
最佳答案
创建您自己的容器集合并将其添加到其中,而不是直接添加到页面控件集合中。
在.aspx上:
<asp:Panel id="links" runat="server" />
在后面的代码中(我建议使用
Init
事件处理程序,而不是页面加载):foreach (FileInfo fi in dirInfo.GetFiles())
{
HyperLink hl = new HyperLink();
hl.ID = "Hyperlink" + i++;
hl.Text = fi.Name;
hl.NavigateUrl = "../downloading.aspx?file=" + fi.Name + "&user=" + userIdpar;
links.Controls.Add(hl);
links.Controls.Add(new LiteralControl("<br/>"));
}
关于asp.net - 如何在页面加载中以编程方式向页面添加控件?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4484854/