我在asp:net中使用 AJAX ,并试图处理一个asp:button同时触发一个javascript方法和一个codebehind c#方法的情况。为此,我使用了按钮的onclick和onClientClick属性。我需要一个回发发生的代码被调用,但这个回发导致JavaScript无法工作,因为变量已经失去了状态。有谁能描述一下如何处理这个问题吗?可以使用 AJAX 和async postback吗?我快被逼疯了!
编辑:javascript实际上是用于google-map(v3),c#代码用于提交到sql db。
Map在代码隐藏中初始化为:
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>
...我想如果我能让第一个updatepanel在按钮点击时回发,第二个面板不回发,按钮仍然调用代码隐藏,这会起作用。到目前为止,这一切都没有同时发生。
1条答案
按热度按时间bkhjykvo1#
如果您只是想在运行OnClick(服务器)代码之前运行OnClientClick(客户端)代码,请尝试以下操作:
ASP.NET
Javascript
C#
JavaScript函数首先执行,并在执行服务器代码之前返回。