Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
异步Javascript回调未触发RaiseCallBackEvent函数_Javascript_Asp.net_Ajax_Sharepoint_Callback - Fatal编程技术网

异步Javascript回调未触发RaiseCallBackEvent函数

异步Javascript回调未触发RaiseCallBackEvent函数,javascript,asp.net,ajax,sharepoint,callback,Javascript,Asp.net,Ajax,Sharepoint,Callback,在我的asp.net应用程序中,我使用了异步javascript回调。 要求是,一旦用户输入邮政编码,就应该调用异步javascript回调函数。服务器端代码必须返回与邮政编码相关的城市 我所做的编码是: <asp:TextBox ID="txtPostCode" runat="server" CssClass="textbox" onchange="javascript: getCityAndStreet();" BorderStyle="Ridge" Height="20px" sty

在我的asp.net应用程序中,我使用了异步javascript回调。 要求是,一旦用户输入邮政编码,就应该调用异步javascript回调函数。服务器端代码必须返回与邮政编码相关的城市

我所做的编码是:

<asp:TextBox ID="txtPostCode" runat="server" CssClass="textbox" onchange="javascript: getCityAndStreet();" BorderStyle="Ridge" Height="20px" style="margin-left: 10px" Width="442px"></asp:TextBox>
这里,CallServer是服务器端运行时javascript,注册如下

protected void Page_Init(object sender, EventArgs e)
{
    String cbReference = Page.ClientScript.GetCallbackEventReference(this, "arg", "ReceiveCityAndStreet", "context",true);

    String callbackScript;
    callbackScript = "function CallServer(arg, context)" +   "{ " + "alert('Entered inside CallServer' + arg);" + cbReference + ";}";

    Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "CallServer", callbackScript, true);
}
我实现了
ICallBackHandler
,通过它我得到了两种方法:

string ICallbackEventHandler.GetCallbackResult()
{
    return cityAndStreet;
}

void ICallbackEventHandler.RaiseCallbackEvent(string eventArgument)
{
    txtStreet.Enabled = true;
    txtCity.Enabled = true;

    cityAndStreet = eventArgument;
}
在页面加载功能中,我刚刚禁用了
txtStreet.Enabled
txtCity.Enabled
文本框,在raisecallback事件中,我正在启用它

这里的问题是
RaiseCallBackEvent
不起作用。我的意思是它不是被暗中触发的


(此应用程序不是通过浏览器直接访问的,而是通过SharePoint网站访问的)

我认为问题在于,当您单击按钮时,它实际上会回发。您不需要回发,因为您正在使用AJAX调用服务器。尝试将onchage处理程序更改为:

onchange="getCityAndStreet();return false;"
这将导致您的按钮不会触发回发


编辑:我还想指出,您不能更改RaiseCallBackEvent方法中的控件。这不是真正的回发。您需要在onSuccess方法中使用javascript启用文本字段。

要获得异步调用结果,这相当复杂,如果有许多调用,则会变得更复杂,请尝试使用jQuery ajax
onchange="getCityAndStreet();return false;"