1

aspnet WebフォームのGridViewにCheckBoxフィールドがあります。ユーザーが各チェックボックスをチェック/チェック解除すると、jQueryを使用してそのチェックボックスのOnCheckedChangedイベントのサーバー側コードを実行したいと思います。

GridView は、このような jQuery ポップアップ ウィンドウに読み込まれます

<div id="dialog" style="display: none">
    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false" OnPageIndexChanging="OnPageIndexChanging" DataKeyNames="ID"
        PageSize="10" AllowPaging="true">
        <Columns>
            <asp:TemplateField>
                <ItemTemplate>
                    <asp:checkbox id="chk" runat="server" Text="Select" OnCheckedChanged="OnCheckChanged" />
                </ItemTemplate>
            </asp:TemplateField>
            <asp:BoundField DataField="ID" HeaderText="ID" ItemStyle-Width="100" />
            <asp:BoundField DataField="Name" HeaderText="Name" ItemStyle-Width="300" />
            <asp:BoundField DataField="Description" HeaderText="Description" ItemStyle-Width="400" />
        </Columns>
    </asp:GridView>
</div>

jQueryはこんな感じ

$(document).ready(function () {
    $("input:checkbox").click(function () {
        if ($(this).is(":checked")) {
            $(this).trigger('OnCheckChanged',true);            
        } else {
            alert("false");
        }
    });
});

私の「CheckChanged」イベントはこのようなものです

Sub OnCheckChanged(sender As Object, e As EventArgs)
Dim chk As CheckBox = TryCast(sender, CheckBox)
Dim row As GridViewRow = TryCast(chk.NamingContainer, GridViewRow)
Dim pk As String = GridView1.DataKeys(row.RowIndex).Values(0).ToString
If chk.Checked = True Then
      'Do something  
Else
      'Do something 
End If

End Sub

jQuery 関数は、CheckBox がオフのときに機能します。ただし、サーバー側の OnCheckChanged イベントは発生しません

誰でも助けることができますか?

4

2 に答える 2

0
$(document).ready(function () {
   $("input[type=checkbox]" ).click(function () {
       if ($(this).is("input:checked")) {
           $(this).trigger('OnCheckChanged',true);            
       } else {
           alert("false");
       }
    });
});
于 2016-09-12T20:08:24.690 に答える