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;
    }

}


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

posted @ 2006-12-26 17:05  chy710  阅读(1216)  评论(4编辑  收藏  举报