• 使用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;
            }
           
        }

  • 相关阅读:
    serial number
    python getopt
    python readline,seek
    linux scp
    jenkinsapi
    windows kill process
    python time
    python configparse
    解决某些.net不方便解决的问题,解决方法就是 DHTML
    (转)windows XP 系统服务“关闭”详细列表,释放N多内存,128也够用了!
  • 原文地址:https://www.cnblogs.com/wz327/p/1731948.html
Copyright © 2020-2023  润新知