ASP.NET2.0中用ICallbackEventHandler实现客户端与服务器端异步

来源:岁月联盟 编辑:zhu 时间:2007-01-10

页面代码:
<script type="text/">
      function ReceiveServerData(rValue)
      {
         alert(rValue);
      }
 </script>
<input id="Button1" type="button" value="button" onclick ="CallServer('Client')" />
服务端代码:
public partial class back2 : System.Web.UI.Page,System .Web .UI .ICallbackEventHandler
{
    public string CallBackValue = null;
    protected void Page_Load(object sender, EventArgs e)
    {

    }
     // 注册脚本到前台页面
    protected void Page_PreRender(object sender, EventArgs e)
    {
        RegClientScript();
    }
    // javascript函数(服务器端事件的客户端回调)
    protected void RegClientScript()
    {
       ClientScriptManager cs = Page.ClientScript;
       string jstxt=@"
                  function CallServer(msgid)
                  {
                     " + cs.GetCallbackEventReference(this, "msgid", "ReceiveServerData", null) + @";
                  }";
       cs.RegisterStartupScript(this.GetType(), "callserver", jstxt, true);
    }
    //ICallbackEventHandler接口
    //把值传到前台
    string ICallbackEventHandler.GetCallbackResult()
    {
        return CallBackValue + ",Server";
    }

    //按受前台的参数
    void ICallbackEventHandler.RaiseCallbackEvent(string eventArgument)
    {
        this.CallBackValue = eventArgument;
    }
}