checkbox - 获取转发器中所有复选框的值

标签 checkbox foreach repeater asp.net-3.5

当用户单击“保存更改”按钮时,我需要获取转发器内所有复选框的值。如果我无法获取值,ID也可以。

母版页代码:

<ul class="bulletless">
    <asp:Repeater runat="server" ID="newsletter_repeater">
        <ItemTemplate>
            <li><input type="checkbox" value='<%#Eval("id")%>' id='<%#Eval("id")%>'/> <%#Eval("displayTitle")%></li>
        </ItemTemplate>
     </asp:Repeater>
</ul>

<asp:Button runat="server" CssClass="editButtonOff" Text="Save Changes" ID="SaveNewsletterChanges" OnClick="SaveNewsletterChanges_submit" />

这是我的代码:
protected void SaveNewsletterChanges_submit(object sender, EventArgs e)
{
    //the count of the items in the repeater is 2
    //but the aItem is null
        foreach( RepeaterItem aItem in newsletter_repeater.Items){
        string myId = aItem.ID;
    }
}

我究竟做错了什么?

最佳答案

首先,您需要添加runat="server"到您的复选框。

其次,您需要为复选框分配一个不变的 id。转发器将负责使客户端 ID 唯一:id="chkDisplayTitle"
第三,您可以像这样访问转发器中的项目:

foreach (RepeaterItem item in CourseAreaRptr.Items)
        {
            HtmlInputCheckBox chkDisplayTitle = (HtmlInputCheckBox)item.FindControl("chkDisplayTitle");
            if (chkDisplayTitle.Checked)
            {
                //HERE IS YOUR VALUE: chkAddressSelected.Value
            }
        }

关于checkbox - 获取转发器中所有复选框的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16697093/

相关文章:

android - 带有复选框的 ListView 中的 IndexOutOfBoundsException

android - 自定义列表点击复选框

ruby-on-rails - 通过复选框删除多个项目

html - 我在 ul、li 元素中嵌套 CSS/HTML 复选框时遇到问题

php - 等于 PHP 参数和 mysql 数据使 foreach 循环不起作用

c# - 在 C# 中的 Repeaters 中更改数据绑定(bind)控件的值

PHP - Foreach 循环和资源

java - 自定义编写的 Set 迭代器在 for-each 循环中抛出异常

asp.net - 如何在 ItemDataBound 事件期间向 asp 转发器添加空白行?

c# - asp 中继器复选框状态保留