我想动态地将控件添加到占位符,如下所示:
int fileCount = Convert.ToInt32(lblCount.Text);
for (int i = 0; i<fileCount ; i++)
{
FileUpload fu = new FileUpload();
if(PlaceHolder1.HasControls())
PlaceHolder1.Controls.AddAt(i,fu);
else
PlaceHolder1.Controls.Add(fu);
PlaceHolder1.Controls[i].ID = "123456abcdef" + i;
}
但我得到了错误
找到了具有相同 ID '123456abcdef0' 的多个控件。FindControl 要求控件具有唯一的 ID。
为什么?在循环的每次迭代中,只有一个控件应该获得该 ID。
编辑:应该提到我实际上无法测试循环,即使 fileCount 为 1,我也会收到错误消息。
解决方案:当我认为它在页面加载之外时,我从页面加载中的“foreach”循环中调用了这个函数。尽管如此,记住 clear() 方法将消除函数 addat 部分的必要性。