我有以下网格视图。
<asp:GridView ID="GridView1" runat="server" AllowPaging="True" BackColor="White"
BorderColor="#CCCCCC" BorderStyle="None" BorderWidth="1px" CellPadding="4" DataSourceID="UserModule_allusers"
ForeColor="Black" GridLines="Horizontal" OnRowDataBound="grvGroups_RowDataBound"
Width="324px" OnSelectedIndexChanged="GridView1_SelectedIndexChanged">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:RadioButton ID="selectRow" GroupName="userSelect" runat="server" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
这里我使用一个单选按钮来选择行。要选择我正在使用以下jquery脚本的行。
$('#<%=GridView1.ClientID%>').find('input:radio[id*="selectRow"]').click(function () {
$('<%=GridView1.ClientID%>').find('input:radio[id*="selectRow"]').attr('checked',false);
$(this).attr('checked', true);
var isChecked = $(this).prop("checked");
var $selectedRow = $(this).parent("td").parent("tr");
var selectedIndex = $selectedRow[0].rowIndex;
if (isChecked)
$selectedRow.css({
"background-color": "DarkSlateBlue",
"color": "GhostWhite"
});
});
在这个脚本中,我试图首先取消检查网格中的所有单选按钮并检查当前上下文单选按钮。所有单选按钮都取消选中,但不会检查当前的单选按钮。我做错了。
答案 0 :(得分:0)
试试这个javascript:
$('#<%=GridView1.ClientID%>').find('input:radio[id*="selectRow"]').click(function () {
$('#<%=GridView1.ClientID%>').find('input:radio[id*="selectRow"]').attr('checked', false).parent("td").parent("tr").css({ "background-color": "white", "color": "black" });
$(this).attr('checked', true);
var isChecked = $(this).prop("checked");
var $selectedRow = $(this).parent("td").parent("tr");
var selectedIndex = $selectedRow[0].rowIndex;
if (isChecked)
$selectedRow.css({
"background-color": "DarkSlateBlue",
"color": "GhostWhite"
});
});
您在此行中添加了错误:
$('<%=GridView1.ClientID%>').find('input:radio[id*="selectRow"]').attr('checked',false);
你忘记了gridview ID之前的#。
我添加代码以从未选择的行中删除格式。