1

我有以下网格视图。

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

在这个脚本中,我试图首先取消选中网格中的所有单选按钮并检查当前上下文单选按钮。所有单选按钮都未选中,但未选中当前单选按钮。我在哪里做错了。

4

1 回答 1

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 之前的 # 。

我也添加了代码以从未选择的行中删除格式。

于 2013-02-26T12:45:09.727 回答