使用ICallbackEventHandler 实现异步调用

 前台页面内容:

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>无标题页</title>
   
    <script  language="javascript" type="text/javascript">
        function callServer()
        {
          var context=document.getElementById("txtMessage").value;         
          dos(context);
        }

        //处理返回的数据
        function ReceiveServerData(text)
        {           
          document.getElementById("txtResult").value=text;;
          alert(text);
        }
    
    </script>
   
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <input type="text" id="txtMessage" />
    <input type="button" onclick="callServer();" value="callServer" />
   Result: <input  type="text" id="txtResult" />
    </div>
     </form>
</body>
</html>

后台的代码:

public partial class YTest : System.Web.UI.Page,ICallbackEventHandler
    {
        private string result;


        protected void Page_Load(object sender, EventArgs e)
        {
            //if (!Page.IsPostBack)
            //{
            //    string cbReference = Page.ClientScript.GetCallbackEventReference(this, "context", "ReceiveServerData", "");   //获取一个对客户端函数的引用;调用该函数时,将启动一个对服务器端事件的客户端回调。
            //    string callbackScript = "function dos(context){" + cbReference + ";}";                                        //注册客户端方法
            //    Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "dos", callbackScript, true);                  //向客户端写入脚本块

            //}

          
        }

       

下面是继承实现ICallbackEventHandler的两个方法:


        /// <summary>
        /// 处理回调事件。 
        /// </summary>
        /// <param name="text"></param>
        public void RaiseCallbackEvent(string context)
        {
            result = "客户端在[" + DateTime.Now.ToString() + "]传送来了" + context;
        }
        
        /// <summary>
        /// 返回回调事件的结果。 
        /// </summary>
        /// <returns></returns>
        public string GetCallbackResult()
        {
            return result;
        }
       
    }

 

posted on 2010-05-10 17:37  bobo327  阅读(235)  评论(0编辑  收藏  举报