2016-09-12 29 views
1

私はaspnet webformのGridViewにCheckBoxフィールドを持っています。ユーザーが各チェックボックスをオン/オフすると、jQueryを使用してそのチェックボックスのOnCheckedChangedイベントのサーバーサイドコードを実行します。jQueryのCheckBoxのonCheckChangedイベントaspnet

この

<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のようなjQueryのポップアップウィンドウ内のGridViewの負荷は、この

マイ "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 

のようなものです

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

jQueryの機能のようなものですCheckBoxがチェックされていないときに機能します。しかし、それはサーバー側のOnCheckChangedイベントを起動しません

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

答えて

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

私はこの提案を試みましたが、それでもサーバー側のコードは起動しません。 – user214235

+0

GridViewはjQueryのポップアップウィンドウにロードされます。編集には – user214235

+0

のコメントがあります – user214235

0

ありがとうございます。 looootを読んだ後、私は、トリガー( 'OnCheckChanged')を使わずに.trigger( 'change')を使う必要があるという結論に達しました。私が間違っていれば私を修正してください。

また、チェックボックスフィールドにAutoPostBack = "true"を含める必要があります。これを "true"に設定しないと、レンダリング時にサーバーサイドイベント "OnCheckChanged"にチェックボックスが付きません。

問題は、AutoPostBack = "true"に設定すると、モーダルポップアップウィンドウが消えてリロードしないという問題です。

(a)AutoPostBack = "true"に設定せずにサーバーサイドイベントをコントロールに接続する方法はありますか?

(b)または、ポップバック後にモーダルポップアップウィンドウをリロードすることはできますか?ユーザが選択したのと同じ状態のチェックボックスを使用しますか?

関連する問題