私はC#とASP.NETを初めて使用しています。ポストバックを使ってサーバサイドメソッド(コードビハインド)を呼び出すjQueryのyes/noダイアログがあります。ASP.NETポストバック:呼び出されるコードビハインドメソッドはどこですか
私はインターネット上で見つけた抜粋を使ってコードをまとめましたが、コードがどのように機能しているか完全に理解していません。
jQueryダイアログで「はい」をクリックすると、サーバー側のC#メソッドDeleteConfirmedServerside
が呼び出されます。
しかし、レンダリングされたhtmlコードでは、サーバー側のメソッドへの参照が表示されないため、なぜ動作するのか分かりません。
は私はjavascriptのポストバックについてのいくつかの記事を読んだ...それでも私は、次のコードが動作する理由を理解していない:
.aspx
ファイル
// jQuery code (Dialog with yes/no Buttons)
buttons: [
{
id: "Yes",
text: "Yes",
click: function()
{
$("#btnDeleteConfirmedClientside").click();
}
},
....
<asp:Button ID="btnDeleteCanceledClientside" runat="server"
OnClick="DeleteCanceledServerside" Text="DeleteCanceled"
UseSubmitBehavior="false" style="display:none"/>
<asp:Button ID="btnDeleteConfirmedClientside" runat="server"
OnClick="DeleteConfirmedServerside" Text="DeleteConfirmed"
UseSubmitBehavior="false" style="display:none" />
<div id="myDialog" style="display: none" >
Do you want to delete this record?
</div>
コードビハインド(サーバー側)
protected void DeleteConfirmedServerside(object sender, EventArgs e)
{
// called by postback from clientside
ClientScript.RegisterStartupScript(this.GetType(), "alert", "alert('Delete confirmed (YES).')", true);
}
レンダリングされたHTMLクライアント側:
function __doPostBack(eventTarget, eventArgument) {
if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
theForm.__EVENTTARGET.value = eventTarget;
theForm.__EVENTARGUMENT.value = eventArgument;
theForm.submit();
}
}
...
<input type="button" name="btnDeleteCanceledClientside" value="DeleteCanceled"
onclick="javascript:__doPostBack('btnDeleteCanceledClientside','')"
id="btnDeleteCanceledClientside" style="display:none" />
<input type="button" name="btnDeleteConfirmedClientside" value="DeleteConfirmed"
onclick="javascript:__doPostBack('btnDeleteConfirmedClientside','')"
id="btnDeleteConfirmedClientside" style="display:none" />
<div id="myDialog2" style="display: none" >
Do you want to delete this record?
</div>
012ユーザーはjQueryのダイアログで「はい」をクリックすると
が、その後、btnDeleteConfirmedClientside
は、「クリック」され、その後、__doPostBack('btnDeleteConfirmedClientside&...)
が
は、私が理解していないが、レンダリングにこれをある(少なくともこれは私が理解される)と呼ばれているHTML :
onclick="javascript:__doPostBack('btnDeleteConfirmedClientside','')
なぜ__doPostBack
はbtnDeleteConfirmedClientside
はなく、サーバー側のコードビハインド方式DeleteConfirmedServerside
を使用していますか?
DeleteConfirmedServerside
が呼び出されていますが、HTMLではどこにもないので、サーバサイドメソッドへの参照があります... C#コードビハインドメソッドDeleteConfirmedServerside
はどのように呼び出されますか?