asp:netでAJAXを使用していて、asp:buttonがjavascriptメソッドとcodebehind C#メソッドの両方を起動する状況を処理しようとしています。これを行うには、ボタンのonclick属性とonClientClick属性を使用しています。コードビハインドを呼び出すためにポストバックが必要ですが、このポストバックは変数が状態を失ったためにJavaScriptが機能しなくなる原因になります。誰もこれを処理する方法を記述することはできますか? AJAXと非同期ポストバックで可能ですか?私は少し夢中になってきた!asp:buttonのASP.NET非同期ポストバック
編集: JavaScriptは実際にはgoogle-map(v3)用ですが、C#コードはSQL DBに送信するためのコードです。
マップはでコードビハインドで初期化されています。私は私が得ることができれば、それが仕事だと思う...
<asp:UpdatePanel runat="server" ID="Form" UpdateMode="Conditional">
<ContentTemplate>
(...form stuff...)
<asp:Button ID="submitButton" runat="server" Text="Submit" ValidationGroup="NewCallFormSubmit" OnClientClick="calcRoute(); return false;" onclick="submitButton_Click" />
</ContentTemplate>
</UpdatePanel>
<asp:UpdatePanel runat="server" ID="DisplayUpdatePanel" UpdateMode="Conditional">
<ContentTemplate>
<h1>
Pick-Up and Drop-Off Locations
</h1>
<!-- Map Layout -->
<div id="map_canvas" style="width: 500px; height: 500px;"></div>
</ContentTemplate>
</asp:UpdatePanel>
:ここ
protected void Page_Load(object sender, EventArgs e)
{
if(!Page.IsPostBack) {
ScriptManager.RegisterStartupScript(this, this.GetType(), "onload", "initialize_map();", true);
submitButton.Command += new CommandEventHandler(this.submitButton_Click);
}
}
は、関連するコードの一部であります最初のupdatepanelをポストバックに、ポストバックをポストバックに、2番目のパネルをポストバックに、そしてボタンを押してコードビハインドを呼び出します。これまでのところ、この間にすべてのことは同時に起こっていません。
OnClick(サーバー)コードの前にOnClientClick(クライアント)コードを実行するだけですか? – Brissles
あなたは(IsPostBack)か(!IsPostBack)を使ってみましたか? –
あなたのコードのサンプルを入れて –