ICallbackEventHandler - 客戶端回調 - 無刷新(對她的理解就是:觸發庫函數-回調-回傳-接收)...

ASP.NET 2.0中,引入了一个称为"客户端回调"的功能,利用这个内建的解决方案我们可以轻松实现客户端脚本和服务器端代码间的交互,从而避免了页面因回发带来的频繁刷新。客户端回调本质上就是指通过前端的客户端脚本向服务器端传递相应的数据参数,服务器端再以接受到的参数进行查询和处理,最后将结果回传到客户端进行显示。在网上已经有蛮多实现无刷新回调的文章,之前在ASP.NET1.0 AJAX技术实现过,现在ASP.NET2.0使用ICallbackEventHandler来实现。具体如下:
      
前台页面: 

<body>
    <form id="form1" runat="server">
    <div>
        &nbsp;<input id="txtMessage" style="width: 353px" type="text" />&nbsp;
        <input id="Button1" type="button" value="Call to Server" onclick="CallServer();" />
        <br />
        &nbsp;result:<input id="txtResult" style="width: 442px" type="text" /></div>
    </form>
</body>


       
前台脚本:

<script type="text/javascript">
      function CallServer()
cid:image002.gif@01C99726.A5F3A790cid:image003.gif@01C99726.A5F3A790      {
          var product = document.getElementById("txtMessage").value;//前台数据传到后台处理
          
          //返回后台处理后的数据到前台,用前台函数ReceiveServerData来接收
          <%= ClientScript.GetCallbackEventReference(this, "product", "ReceiveServerData",null)%>;
      }
      
      function ReceiveServerData(rValue)
cid:image002.gif@01C99726.A5F3A790cid:image003.gif@01C99726.A5F3A790      {
         //alert(rValue);
         document.getElementById("txtResult").value = rValue;
     }
     </script>


后台代码:

public partial class testNoRefresh : System.Web.UI.Page, System.Web.UI.ICallbackEventHandler
cid:image002.gif@01C99726.A5F3A790cid:image003.gif@01C99726.A5F3A790{
    protected void Page_Load(object sender, EventArgs e)
cid:image007.gif@01C99726.A5F3A790cid:image008.gif@01C99726.A5F3A790    {

    }

    //定义一个字符串,回调的结果信息将保存在该字符串中
    private string CallBackValue = string.Empty;

   

    //引发回调事件处理
    void ICallbackEventHandler.RaiseCallbackEvent(string eventArgument)
cid:image007.gif@01C99726.A5F3A790cid:image008.gif@01C99726.A5F3A790    {
        this.CallBackValue = "客户端在[" + DateTime.Now.ToString() + "]传送来 [" + eventArgument + "]";
    }

    //回传回调结果
    string ICallbackEventHandler.GetCallbackResult()
cid:image007.gif@01C99726.A5F3A790cid:image008.gif@01C99726.A5F3A790    {
        return CallBackValue;
    }

转载于:https://www.cnblogs.com/lilian_lee/archive/2009/02/25/1397671.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值