我正在以编程方式尝试向div添加带有唯一ID的复选框:
foreach (var item in tweetList)
{
Panel tweetPanel = new Panel();
tweetPanel.BorderColor = System.Drawing.Color.Black;
tweetPanel.BorderWidth = 1;
tweetPanel.Attributes["style"] = "padding: 20px; margin 20px; width: 20%;";
tweets.Controls.Add(tweetPanel);
CheckBox tweetChecker = new CheckBox();
tweetChecker.ID = "checkBox" + count;
tweetPanel.Controls.Add(tweetChecker);
tweetPanel.Controls.Add(new LiteralControl("<img src=\"" + item.profileImageUrl + "\">"));
count++;
}
在这个div中:
<div id="tweets" runat="server">
</div>
但是,当我运行它时,它说:
'CheckBox'类型的控件'checkBox0'必须放在带有runat = server的表单标记内。
为什么以编程方式创建的复选框不会被视为服务器端?我该如何解决这个问题
答案 0 :(得分:1)
控件需要位于表单元素中,以便在提交表单时将它们发布到服务器。
<form id="myForm" runat="server">
<!-- your controls -->
<div id="tweets" runat="server">
</div>
</form>
如果这些控件不会导致回发,则只能在表单元素之外添加控件。