回调方法 出错 _pendingCallbacks[...].async为空或不是对象
string result;
protected string CallBackZY;
protected void Page_Load(object sender, EventArgs e)
{
CallBackZY = this.ClientScript.GetCallbackEventReference
(this,//控件名
"yxID",//传递进去的字符串
"GetZYbyServer",//接受成功后处理的客户端 方法
"context", //启动回调之前 客户端计算的客户端脚本
"OnError",//服务器程序出错 客户端接受的脚本
false //true 表示同步执行回调 false表示异步执行回调
);
}
protected string CallBackYX()
{
return " var context= '中国地质大学,1000,长江大学,1001'";
}
public void RaiseCallbackEvent(string eventArgument)
{
// Uncomment next line to test error handler
// throw new ApplicationException(// "Some unhandled exception");
int id;
if (Int32.TryParse(eventArgument, out id))
{
if (id == 1000)
result = " '数学,1000,英语,1001'";
else
result = "计算机,1003";
}
else
{
result = "请选择专业,0";
}
}
public string GetCallbackResult()
{
return result;
}
------解决方案--------------------
CS文件的类是要实现ICallbackEventHandler接口的,
还有你写的方法很乱,
protected string CallBackYX()
{
return " var context= '中国地质大学,1000,长江大学,1001'";
}
这是干吗的,你实现这个接口就有两个方法要实现,你实现这两个方法就可以异步调用了
给你代码看看
JScript code
function callserver(control)
{
if(document.getElementById("<%=txtname.ClientID %>").value!="")
{
//构造将要传递给GegCallbackEventReferance的参数
var context=document.getElementById("<%=test.ClientID %>");
var arg="CheckName|"+control.value;
//显示提示信息
context.innerHTML= "<IMG SRC='/movieOnline/Images/pie.gif' /><font color=blue>正在检查用户名....</font>";
//调用服务器端函数
<%= ClientScript.GetCallbackEventReference(this, "arg", "ReceiveServerData", "context")%>;
}
}
function ReceiveServerData(result, context)
{
context.innerHTML =result;
}