异步Javascript回调未触发RaiseCallBackEvent函数
在我的asp.net应用程序中,我使用了异步javascript回调。 要求是,一旦用户输入邮政编码,就应该调用异步javascript回调函数。服务器端代码必须返回与邮政编码相关的城市 我所做的编码是:异步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: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;"