使用jquery检查gridview的复选框

时间:2013-10-08 21:42:11

标签: c# jquery asp.net web-applications gridview

我有一个带有两个复选框列的gridview。一个用于选择,另一个用于设置属性,例如“添加到收藏夹”。此gridview后面加载代码,复选框在Item Template中定义。问题是,如果有人检查同一行的两个方框,当他们刚刚选择“添加到收藏夹”并且这也应该自动检查选择复选框,这对用户不是很友好。我知道这可以使用jquery轻松完成,因为我不认为为这些选择做回发是一个很好的用户体验。我对jquery很新,所以任何帮助都会受到赞赏。

同一行上的复选框遵循相同的id约定,因此如果select是cbSelect_0,另一行将是cbfavorite_0。我还给了所有cbFavorite复选框同一个类“cbMul”然后我写了一个函数

 function checkUncheck() {
 $(".cbMul").checked(function() {

if ( $(this).attr('checked')) {
    $('#myCheckbox').attr('checked', false);
} else {
    $('#myCheckbox').attr('checked', 'checked');
}

});     }

现在,我不明白如何获取已选中的复选框的属性,替换名称并获取复选框的ID(如果选择)然后检查那个?

这是gridview:

<asp:GridView ID="gvEnvironments" EmptyDataText="--- No Data ---" runat="server" AutoGenerateColumns="false"
DataKeyNames="Id" >
<Columns>
    <asp:TemplateField HeaderText="Select">
        <ItemTemplate>
            <asp:CheckBox ID="cbSelectEnvironments" runat="server" />
        </ItemTemplate>
    </asp:TemplateField>
    <asp:BoundField DataField="Id" HeaderText="ID" InsertVisible="false" ReadOnly="true" SortExpression="Id" />
     <asp:TemplateField HeaderText="Multi">
        <ItemTemplate>
            <asp:CheckBox ID="cbFav" runat="server" Checked="false" CssClass="cbMul" />
        </ItemTemplate>
    </asp:TemplateField>
    <asp:BoundField DataField="Name" HeaderText="Name" SortExpression="Name" />
    <asp:BoundField DataField="Description" HeaderText="Description" HeaderStyle-Width="300px" SortExpression="Description" />

</Columns>                                                                

1 个答案:

答案 0 :(得分:0)

这是一个小提琴:http://jsfiddle.net/FyDEk/

<强> HTML:

<table>
    <tr>
        <td>
            <input class="cb1" type="checkbox" />
        </td>
        <td>
            <div id="dd">text</div>
        </td>
        <td>
            <input class="cb2" type="checkbox" />
        </td>
    </tr>
</table>

<强> JS:

$(function () {    
    $(".cb2").on("change", function () {
        var cb = $(this),
            cbIsChecked = cb.is(":checked"),
            cbPrev = cb.parent().parent().find(".cb1");

        if(cbIsChecked)
            cbPrev.prop("checked", true);
        else
            cbPrev.prop("checked", false);
    });    
});

在CheckBox中添加适当的类。