前台
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title>回调</title>
<script type = "text/javascript" language ="javascript" >
function CallServerFunction()
{
//定义arg变量,存储页面中“id”属性为“word”元素的“value”属性值
var arg = document.getElementById("word").value;
//调用UseCallback函数,并传递arg变量,该变量最终将传递到RaiseCallbackEvent()方法
UseCallback(arg);
}
//接收回调服务器端传过来的结果数据(即服务器端的Result变量值),该函数名为GetCallbackEventReference()的第3个参数
function ReceiveServerData(result)
{
document.getElementById("rs").innerText = result;
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<input type = "text" id="word" />
<br />
<!--调用回调函数的控件必须是HTML控件,不能为服务端控件!-->
<input type= "button" id ="btn" value = "回调" onclick="CallServerFunction();" />
<hr />
<span id="rs"></span>
</div>
</form>
</body>
</html>
后台
public partial class 客户端回调 : System.Web.UI.Page, System.Web.UI.ICallbackEventHandler
{
//定义Result变量用于存储回调的返回值
private string Result;
protected void Page_Load(object sender, EventArgs e)
{
string BRef = Page.ClientScript.GetCallbackEventReference(this,
"arg", "ReceiveServerData", "null ");
//将javascript函数声明赋值给BScript,BRef即为UseCallback函数的函数体
//UseCallback函数是浏览器端函数,接收1个参数
string BScript = "function UseCallback(arg) " +
"{ " + BRef + "; " + "} ";
//调用ClientScriptManager对象的RegisterClientScriptBlock方法将UseCallback函数注册到页面对象客户端脚本中
Page.ClientScript.RegisterClientScriptBlock(this.GetType(),
"UseCallback", BScript, true);
}
//该方法是回调执行的方法,根据参数在这个方法中处理回调的内容
public void RaiseCallbackEvent(string arg)
{
//arg为javascript从客户端传递的参数
Result = "你输入的是:" + arg;
}
//该方法是返回回调的结果给客户端
public string GetCallbackResult()
{
//返回Result到指定的客户端函数中
return Result;
}
}
*************************************
到底是哪里出现了问题?
------解决方案--------------------------------------------------------
如果是webform的,我推荐你用这个技术http://ajaxpro.codeplex.com/ 相对简单也够灵活。
微软的callback到还可以,就是不适合做项目。
------解决方案--------------------------------------------------------
没有仔细看啊,不过一般是 result.innerText;
楼主debugger一下啊
function ReceiveServerData(result)
{
document.getElementById("rs").innerText = result.innerText ;
}