以编程方式添加动态命名的复选框

时间:2016-02-26 20:16:51

标签: c# asp.net .net

我正在以编程方式尝试向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的表单标记内。

为什么以编程方式创建的复选框不会被视为服务器端?我该如何解决这个问题

1 个答案:

答案 0 :(得分:1)

控件需要位于表单元素中,以便在提交表单时将它们发布到服务器。

<form id="myForm" runat="server">
    <!-- your controls -->
    <div id="tweets" runat="server">
    </div>
</form>

如果这些控件不会导致回发,则只能在表单元素之外添加控件。