Anthem.net是一种新的AJAX技术,它主要是提供了一个新控件库,库中包含了大量常用控件,如Button、Calendar、CheckBox等等,到目前为止为ASP.NET提供了24种新控件,实用于ASP.NET 1.0 和 ASP.NET 2.0 。
  Anthem.net的所有技术都是开源的,源代码下载地址为http://nchc.dl.sourceforge.net/sourceforge/anthem-dot-net/anthem-1.1.0.zip
  Anthem.net技术的原理简单介绍:
  让每个控件都有独立的信息提交能力,
  比如在一个Button的Click事件中
  private void Button1_Click(object sender, System.EventArgs e)
  {
  TextBox1.Text = "OK";
  TextBox1.UpdateAfterCallBack = true;
  }
  运行的页面上,你看不到刷新,TextBox1就改变了。
  其实在编译的过程中,由于我们使用的是Anthem.net控件,它会自动产生大量的javascript脚本,来实现异步交互。
  那么我们只需要和往常一样在后台中写每个事件下的操作,至于是不是异步交互,我们都不用管了。
  不足的是,这个开源技术目前只是1.0版本,目前只有24种可用控件,自定义控件不能直接实现独立提交的接口。
  和传统的ajax技术相比,它有以下优点:
  1、不需要任何技术升级,以前不会使用ajax技术的人员,按照以往的编程方式就可实现异步交互
  2、支持ASP.NET 1.0 和 ASP.NET 2.0
  3、开源技术,如果深入研究,也能开发出自己的控件
  Anthem.NET的Callback方式。
  一、普通的调用
  <%@ Register TagPrefix="anthem" Namespace="Anthem" Assembly="Anthem" %>
  <anthem:Button >
  void button_Click(object sender, EventArgs e) {
  label.Text = DateTime.Now.ToString();
  label.UpdateAfterCallBack = true;
  }
  </script>
  二、在回调前后添加自定义客户端函数的执行逻辑
  几个常用的属性:
  PreCallBackFunction:用于定义回调前执行的函数,通常可以在这里加入确认的判断。
  在这个函数里 return false 将会取消回调。
  PostCallBackFunction: 回调后执行的函数。
  TextDuringCallBack: 用于定义回调过程中控件显示的提示信息(通常是提示等待的文字)
  EnabledDuringCallBack: 在回调过程中,控件是否禁用。
  CallBackCancelledFunction: 如果回调被取消,则会调用这个函数。
  代码例子:

 <anthem:Button id="button1"runat="server" Text="Click Me!" TextDuringCallBack="Working..."EnabledDuringCallBack="false" PreCallBackFunction="button1_PreCallBack"PostCallBackFunction="button1_PostCallBack"CallBackCancelledFunction="button1_CallBackCancelled" />

 


  <script language="javascript" type="text/javascript">
  // 回调之前,可在这里取消回调
  function button1_PreCallBack(button) {
  if (!confirm('Are you sure you want to perform this call back?')) {
  return false;
  }
  document.getElementById('button2').disabled = true;
  }
  // 回调完成后
  function button1_PostCallBack(button) {
  document.getElementById('button2').disabled = false;
  }
  // 取消回调后
  function button1_CallBackCancelled(button) {
  alert('Your call back was cancelled!');
  }
  </script>
  注意以上这些客户端处理函数中,都可以传递 control 本身作为参数,因此在必要的情况下这些函数是可以被重用的。(比如对一组类似的控件的回发事件进行处理)
  三、调用服务器页面的方法
  服务器端需要做的事情:
  [Anthem.Method]
  public int Add(int a, int b) {
  return a + b;
  }
  void Page_Load() {
  Anthem.Manager.Register(this);
  }
  客户端:
  <input
  #if V2
  Page.ClientScript.RegisterClientScriptBlock(typeof(Page), script, script);
  #else
  Page.RegisterClientScriptBlock(script, script);
  #endif
  Anthem.Manager.IncludePageScripts = true;
  }
  </script>
  八、PreUpdate 事件
  控件在 Render 之前,如果 UpdateAfterCallBack 为 true,则会引发这个事件。
  目前这个事件的用途似乎不大。
  大致的了解了一下Anthem.NET,感觉还是蛮不错的,至少在目前的应用中,已经足够了。:)

相关文章:

  • 2022-01-11
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-11-12
  • 2021-11-09
  • 2022-12-23
  • 2022-01-20
猜你喜欢
  • 2022-01-08
  • 2021-09-11
  • 2022-12-23
  • 2021-05-16
  • 2021-08-29
相关资源
相似解决方案