C# ASP.NET异步发回ASP:按钮单击

C# ASP.NET异步发回ASP:按钮单击,c#,asp.net,ajax,postback,asynchronous-postback,C#,Asp.net,Ajax,Postback,Asynchronous Postback,我在asp:net中使用AJAX,并试图处理这样一种情况:asp:button同时触发javascript方法和codebehind c方法。为此,我对按钮使用onclick和onClientClick属性。我需要一个回发来调用codebehind,但是这个回发会导致javascript无法工作,因为变量已经失去状态。有人能描述一下如何处理这个问题吗?可以使用ajax和异步回发吗?这开始让我有点疯狂了 编辑: javascript实际上是用于GoogleMapv3的,c代码是用于提交到SQLDB

我在asp:net中使用AJAX,并试图处理这样一种情况:asp:button同时触发javascript方法和codebehind c方法。为此,我对按钮使用onclick和onClientClick属性。我需要一个回发来调用codebehind,但是这个回发会导致javascript无法工作,因为变量已经失去状态。有人能描述一下如何处理这个问题吗?可以使用ajax和异步回发吗?这开始让我有点疯狂了

编辑: javascript实际上是用于GoogleMapv3的,c代码是用于提交到SQLDB的

映射在代码隐藏中初始化为:

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在按钮点击时回发,第二个面板不回发,还有按钮仍然调用codebehind,那就行了。到目前为止,这一切都不会同时发生。

如果您只是想在OnClick服务器代码之前运行OnClick客户端代码,请尝试以下操作:

ASP.NET


JavaScript函数首先执行,并在执行服务器代码之前返回。

是否只想在OnClick服务器代码之前运行onclintclick客户端代码?是否尝试过使用IsPostBack或!IsPostBackok,添加了一些代码,并在上面做了进一步解释。。。我在用!iPostBack,但可能不正确@Brissels:我基本上只想通过codebehind调用,这样数据就可以提交到db,但不会在过程中破坏javascript谷歌地图。嘿,谢谢,实际上我只想通过codebehind调用,这样数据就可以提交到db,但不会在过程中破坏javascript谷歌地图。我猜我的更新面板在工作,我只是仍然有一个返回错误;从另一次修复尝试添加到我的onclientclick。你的回答引起了我的注意,所以这是你的绿色复选标记!谢谢大家!!
<asp:Button ID="btn_mybutton" runat="server" Text="MyButton" OnClientClick="return JSFunction();" OnClick="CFunction"/>
<script type="text/javascript">
    function JSFunction() {
        alert('Some JavaScript stuff');
        return true; 
    }
</script>
protected void CFunction(object sender, EventArgs e)
{
    // Some server code
}