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>

ここでは、1 つのラジオ ボタンを使用して行を選択しています。行を選択するには、次の 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 に答える