我有一个带有两个复选框列的网格视图。一个用于选择,另一个用于设置诸如“添加到收藏夹”之类的属性。这个 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>