Asp.Net2.0无刷新客户端回调----根据参数,得到返回结果
2008-12-09 10:13 yuejianjun 阅读(189) 评论(1) 编辑 收藏 举报前途代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>无标题页</title>
<script type="text/javascript">
function test(con)
{
//得到你选择的下拉框的文本再调用呢个CallTheServer,是一个由服务器端输出的js函数
CallTheServer(con,''); //此方法由 后台生成到前台来
}
function ReceiveServerData(rValue)
{
Results.innerHTML = rValue;
//在<span id="Results"></span>添加由后台生成的方法 CallTheServer(con,'');
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<br />
<br />
<input onclick="test('yue')" value="从服务器返回下拉框文本" type='button'/> <br />
<br />
<span id="Results"></span>
<br />
</div>
</form>
</body>
</html>
后台代码:
public partial class Default2 : System.Web.UI.Page, System.Web.UI.ICallbackEventHandler
{
protected void Page_Load(object sender, EventArgs e)
{
String cbReference = Page.ClientScript.GetCallbackEventReference(this, "arg", "ReceiveServerData", "context");
String callbackScript;
callbackScript = "function CallTheServer(arg,context)" +
"{ " + cbReference + "} ;";
Page.ClientScript.RegisterStartupScript(this.GetType(), "abcdefg", callbackScript, true);
//第四个参数代表是不是要自动给着脚本加上<script type="text/javascript"></script>标记,当然要加啊
}
private string SelectValue;
public void RaiseCallbackEvent(string eventArgument)
{
// ICallbackEventHandler接口 要实现的方法
// 处理以控件为目标的回调事件。
// 参数:
// eventArgument:
// 一个字符串,表示要传递到事件处理程序的事件参数。
SelectValue = eventArgument;
}
public string GetCallbackResult()
{
// ICallbackEventHandler接口 要实现的方法
// 返回以控件为目标的回调事件的结果。
//
// 返回结果:
// 回调的结果。
string str="";
string path = Server.MapPath("XMLFile.xml");
XmlDocument xd = new XmlDocument();
xd.Load(path);
XmlNode node1 = xd["title"];
str = node1.InnerXml ;
return "你选择的是:" + str + SelectValue;
}
}
XML文件:
<?xml version="1.0" encoding="utf-8" ?>
<title>反热钱战争的终极利器——美元储备</title>