-1

我有一个带有两个复选框列的网格视图。一个用于选择,另一个用于设置诸如“添加到收藏夹”之类的属性。这个 gridview 是在后面加载代码,并且复选框是在 Item Template 中定义的。问题是让某人选中同一行的两个框并不是非常用户友好,而他们可能刚刚选择了“添加到收藏夹”,这也应该自动检查选择复选框。我知道这可以使用 jquery 轻松完成,因为我不认为为这些选择进行回发是一种良好的用户体验。我对 jquery 非常陌生,因此将不胜感激。

同一行上的复选框遵循相同的 id 约定,因此如果选择是 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(如果选择)然后检查那个?

这是网格视图:

<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>                                                                

4

1 回答 1

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);
    });    
});

将适当的类添加到您的复选框。

于 2013-10-09T01:08:13.390 回答