从这个example中,我们可以从JavaScript回调服务器而不回发,但我想让CallServer方法返回结果,我尝试如下:
string callBackReference = Page.ClientScript.GetCallbackEventReference(this, "arg", "function(result) {alert(result);response = result;}", "context", "function(result) {response = 'Err';}", true);
string callbackScript = "function CallServer(arg, context) { var response; " + callBackReference + "; return response;}";
Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "CallServer", callbackScript, true);
在JavaScript中,我做了下面的事情:
response = CallServer("username", "");
alert("response:" + response);
总是响应等于undefined,尽管我将其设为异步。我该如何解决这个问题?
编辑
我的主要问题,导致我尝试上述解决方案,我需要在Asp按钮的OnClientClick
中调用'CallServer'方法并返回true或false,如下所示:
<asp:Button ID="Button1" runat="server" Text="Button"
OnClientClick="return CallServer('arg','');" onclick="Button1_Click" />
2条答案
按热度按时间4bbkushb1#
可以使用ASP.NET页方法来解决此类问题。
这里是example。
you can use jQuery to call an ASP.NET Page Methods。
当然,您需要启用
ScriptManager
的“EnablePageMethods
”才能启用PageMethods。htrmnn0y2#
HandleResult将从GetCallbackResult接收结果以进行进一步处理。将下面的代码添加到您的aspx页面