zoukankan      html  css  js  c++  java
  • asp.NET中CallBack的回调技术

                                  asp.NET中CallBack的回调技术

    .NET2.0开始提供了一个新的用于指示控件可以作为服务器的回调事件的目标的接口ICallbackEventHandler,通过这个接口提供的方法,也可以实现页面的局部更新效果。
          ICallbackEventHandler主要提供了两个方法:
        (1) string GetCallbackResult();
         没有参数,返回数据类型为字符串型,返回的内容是回调事件执行的结果。
        (2)void RaiseCallbackEvent(string eventArgment);
          没有返回值,参数类型是字符串类型,这个参数一般用于客服端和服务器端之间传递的数据参数。
         一个控件要局部回调功能,它就必须实现ICallbackEventHandler这个接口,在客户端要获取服务器端GetCallBackResult返回的结果,就需要调用
    public string GetCallbackEventReference(Control control,string argument,string clientCallback,string context)
    这个方法,其中control表示处理客户端回调的服务器控件,也就是实现了ICallbackEventHandler接口的控件。argument是从客户端传给服务器端方法void RaiseCallbackEvent(string eventArgment)的那个参数。clientCallback是客服端处理程序的名称,该程序处理的的服务器端GetCallbackResult方法返回的字符串。context,启动回调之前在客户端计算的客户端脚本,又称脚本上下文。
          下面写一个简单的示例代码,很简单,不做过多说明。
           (一)客户端代码

       

    代码
    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %>

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
    <title>无标题页</title>
    <script type="text/javascript">
    function callbackDo()
    {
    var resultStr
    =window.document.getElementById("Text1").value;
    <%=this.ClientScript.GetCallbackEventReference(this,"resultStr","getResult",null) %>
    }
    function getResult(dataStr)
    {
    document.getElementById(
    "mytext").innerHTML = dataStr;
    }
    </script>
    </head>
    <body>
    <form id="form1" runat="server">
    <div>
    <div>
    <input id="Text1" type="text" /></div>
    <div><input id="Button1" type="button" value="button" onclick="callbackDo()"/></div>
    <div id="mytext"></div>
    </div>
    </form>
    </body>
    </html>

    (二)服务器代码

     

    代码
    public partial class Default2 : System.Web.UI.Page,ICallbackEventHandler
    {
    string resultStr = "";
    protected void Page_Load(object sender, EventArgs e)
    {

    }

    public void RaiseCallbackEvent(string eventArgument)
    {
    resultStr
    = "从服务器处理后返回了" + eventArgument;
    }

    public string GetCallbackResult()
    {
    return resultStr;
    }
    }

    (三)测试结果
    在输入框输入“博客园”,单击按钮button,页面无刷新显示“从服务器处理后返回了博客园”



     

  • 相关阅读:
    About_Web
    神奇的 SQL 之性能优化 → 让 SQL 飞起来
    Java实现Kafka生产者和消费者的示例
    Android屏幕绘制一问到底(无代码)
    关于数据库事务和锁的必会知识点,你掌握了多少?
    【Azure Cloud Services】云服务频繁发生服务器崩溃的排查方案
    Choreographer全解析
    气之争,聊聊算法岗位的门户之见!
    资深首席架构师预测:2021年云计算的8个首要趋势
    【并发编程】- 内存模型(针对JSR-133内存模型)篇
  • 原文地址:https://www.cnblogs.com/Mr_JinRui/p/1723048.html
Copyright © 2011-2022 走看看