仅检查Repeater的可见复选框

时间:2014-10-04 13:14:19

标签: c# asp.net

我使用下面的代码来绑定Repeater

<asp:Repeater ID="rptList" runat="server" OnItemCommand="rptList_ItemCommand">
    <ItemTemplate>
        <tr class="odd gradeX" id="trid" runat="server">
            <td data-title="Code">
                <asp:CheckBox ID="chkid" runat="server" AutoPostBack="false" />
                <asp:HiddenField ID="hiddenid" runat="server" Value='<%#Eval("Visa_Type_Id") %>'/>
            </td>
            <td class="hidden-480"><%#Container.ItemIndex+1 %></td>
            <td class="hidden-480">
                <asp:LinkButton ID="lnk1" runat="server" CommandName="Edit" CommandArgument='<%#Eval("Visa_Type_Id") %>'><%#Eval("Visa_Type_Name") %> </asp:LinkButton>
            </td>
            <td class="hidden-480"><%#Eval("Visa_Description") %></td>
            <td class=" " style="width: 100px;"><a href="#"><span class="label label-success">Active</span></a>&nbsp;<a href="#"><span class="label label-success">Publish</span></a></td>
        </tr>
    </ItemTemplate>
</asp:Repeater>

以下代码是检查所有复选框:

protected void chkAll_CheckedChanged(object sender, EventArgs e)
{
    for (int i = 0; i <= rptList.Items.Count - 1; i++)
    {
        CheckBox chk = (CheckBox)rptList.Items[i].FindControl("chkid");
        if (chk.Checked == true)
        {
            chk.Checked = false;
        }
        else
        {
            chk.Checked = true;
        }
    }
}

现在通过上面的代码检查Repeater中的所有复选框,但我只想检查分页中显示的那些复选框。目前,如果我在第1页,使用上面的代码,也会检查第2页上的方框。

请帮帮我。

1 个答案:

答案 0 :(得分:0)

您可以使用jQuery而不是服务器端代码: jsfiddle

 $("#checkAll").click(function () {
     $('input:checkbox').not(this).prop('checked', this.checked);
 });