获取重复器中所有复选框的值

11

当用户点击“保存更改”按钮时,我需要获取重复项内所有复选框的值。如果无法获取值,则使用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;
    }
}

我做错了什么?

1个回答

11

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

其次,您需要为复选框分配一个不会更改的ID。Repeater会负责使客户端ID唯一:id="chkDisplayTitle"

第三,您可以通过以下方式访问Repeater中的项:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接