zoukankan      html  css  js  c++  java
  • ASP.NET2.0中用ICallbackEventHandler实现客户端与服务器端异步交互

    页面代码:
    <script type="text/javascript">
          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;
        }

    }


    运行结果: (实现异步交互,页面不刷新)

  • 相关阅读:
    怪怪设计论闲谈篇:职责与解耦的矛盾
    知识传播与社区讨论 : 兜售狗皮膏药的"软件先知"
    反弹和补遗:再论Bjarne Stroustrup的"基于对象"的含义
    回帖整理: 领域建模/表模块,Java/.NET 社区风格
    贫血或职责的讨论
    近期可能会研究和讨论的个人动向
    CLR寄宿(上) MSCOREE.DLL
    代码组(2) 成员条件
    说说emit(中)ILGenerator
    CLR寄宿(下) 托管宿主
  • 原文地址:https://www.cnblogs.com/chy710/p/604118.html
Copyright © 2011-2022 走看看