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

本文关键字:复选框 动态 编程 方式 添加 | 更新日期: 2023-09-27 18:36:29

我正在以编程方式尝试将具有唯一ID的复选框添加到div:

        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的表单标记中。

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

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

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

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

只有在窗体元素外部添加控件不会导致回发时,才能添加这些控件。