在ASP.NET 2.0里面,我们可以轻松的来做到这点了。服务器端任何实现了System.Web.UI.ICallbackEventHandler接口的控件,都可以通过RaiseCallbackEvent()方法来处理从页面上的JS脚本传递过来的请求和数据,处理后,再将结果传回给页面。这项能力的底层仍然是XMLHTTP。
例JS脚本如下:
window.onload = function () {
CallBackonload();
}
function CallBackonload()
{
var arg = $("prjtype").value + "/xFDonload";
<%= ClientScript.GetCallbackEventReference(this, "arg", "ReceiveServerDataonload", null)%>;
}
C#代码如下:
public partial class L_Audit_desk_Default : System.Web.UI.Page, ICallbackEventHandler
{
/// <summary>
/// str:传递来的参数进行分解后的结果
/// restr:要返回给页面的字符串
/// </summary>
private string[] str;
private string restr = "";
/// <summary>
/// 返回表现层方法
/// </summary>
/// <returns></returns>
public string GetCallbackResult()
{
return restr;
}
/// <summary>
/// 从表现层传来数据
/// </summary>
/// <param name="eventArgument"></param>
public void RaiseCallbackEvent(string eventArgument)
{
//可以根据传递的参数不同,调用不同的处理逻辑
str = eventArgument.Split('/xFD');
if (str[str.Length - 1] == "onload")
{
getprocess_user(str[0]);
}
}
}