我在 asp:net 中使用 AJAX,并试图处理 asp:button 同时触发 javascript 方法和代码隐藏 c# 方法的情况。为此,我使用按钮的 onclick 和 onClientClick 属性。我需要进行回发才能调用代码隐藏,但是此回发会导致 javascript 无法工作,因为变量已丢失状态。谁能描述如何处理这个?ajax 和异步回发可能吗?它开始让我有点疯狂!
编辑: javascript 实际上是用于 google-map (v3),c# 代码用于提交到 sql db。
地图在代码隐藏中初始化:
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);
}
}
以下是一些相关代码:
<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>
...我认为如果我可以让第一个更新面板在按钮单击时回发,第二个面板不回发,并且按钮仍然调用代码隐藏,那么它会起作用。到目前为止,这一切同时发生还没有运气。