从这个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" />
答案 0 :(得分:1)
您可以使用ASP.NET页面方法来解决此类问题 这是一个example。
此外,you can use jQuery to call an ASP.NET Page Methods。
当然,您需要启用EnablePageMethods
的“ScriptManager
”才能启用PageMethods。
答案 1 :(得分:0)
HandleResult将从GetCallback Result接收结果以进行进一步处理。 将以下代码添加到您的aspx页面
<script type="text/javascript">
//the parameter arg is what is returned from GetCallbackResult
function HandleResult(arg, context) {
alert(arg);
}
</script>