62,268
社区成员
发帖
与我相关
我的任务
分享
<%@ Page Language="C#" %>
<%@ Import Namespace="System.Data" %>
<!--要实现回调接口ICallbackEventHandler-->
<%@ Implements Interface="System.Web.UI.ICallbackEventHandler" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
protected DataTable dt = new DataTable();
private int index = 0;
protected void Page_Load(object sender, EventArgs e)
{
dt.Columns.Add("col1", typeof(int));
dt.Columns.Add("col2", typeof(string));
dt.Rows.Add(1, "A");
dt.Rows.Add(2, "B");
dt.Rows.Add(3, "C");
ClientScriptManager script = this.Page.ClientScript;
//获取客户端函数的引用;调用该函数时,将启动一个对服务器事件的客户端回调
//客户端js函数ReceiveServerData
string cbRefer1 = script.GetCallbackEventReference(this, "index", "ReceiveServerData", "", true);
//动态的js脚本
string referScript = "function CallTheServer(index,context){" + cbRefer1 + "}";
//注册客户端脚本
script.RegisterClientScriptBlock(this.GetType(), "CallTheServer", referScript, true);
}
//返回结果给客户端(接口ICallbackEventHandler的)
public string GetCallbackResult()
{
return dt.Rows[index]["col2"].ToString();
}
//回调事件
public void RaiseCallbackEvent(string eventArgument)
{
index = Convert.ToInt32(eventArgument);
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>无标题页</title>
<script language="javascript" type="text/javascript">
function ReceiveServerData(value,context)
{
//value参数就是从后台返回的DataTable值
document.getElementById("Text1").value=value;
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<select id="Select1" onchange="CallTheServer(this.selectedIndex,'')">
<option value ="1">1</option>
<option value ="1">2</option>
<option value ="1">3</option>
</select>
<br />
<input id="Text1" type="text" />
</div>
</form>
</body>
</html>