Anthem.net试用手记之使用篇。
<%@ Register TagPrefix="anthem" Namespace="Anthem" Assembly="Anthem" %>
简单地说就是引入一个Anthem的自定义控件而已,如果页面比较多,也可以直接在web.config<configuration>\ <system.web>\ <pages>\ <controls>中定义:
<add tagPrefix="anthem" namespace="Anthem" assembly="Anthem"/>
之后我们要为原有Asp.net项目实现ajax效果,使用Anthem.net主要有如下几种方式:
1、 Anthem:Panel方式
Anthem.net为我们提供了一个叫anthem:panel控件,该控件继承原有ASP:Panel控件的所有属性及方法并增加异步回调及刷新的功能,不过与其它同样是由Anthem.net提供继承并增加异步回调及刷新的控件有点不同,Anthem:Panel与Asp.net ajax的updatepanel控件有点相似,只需将原有项目的Asp.net控件放进Anthem:Panel内,即可简单地实现ajax效果,其作用基本与asp.net ajax updatpanel是一样的,只不过设置上有少少不同,请看下面的对比:
作用 |
Asp:Updatepanel |
Anthem:Panel |
任何控件引发的回送均将更新该控件。 |
UpdateMode=Always |
AutoUpdateAfterCallBack=true |
只有服务器端调用相应方法才会引发更新该控件。 |
UpdateMode=Conditional,服务端调用Update方法 |
AutoUpdateAfterCallBack=False,服务端设置 UpdateAfterCallBack=true |
是不是有点“孪生兄弟”的味道?
2、 AutoUpdateAfterCallBack方式
将所有由Anthem.net提供的控件设置为AutoUpdateAfterCallBack=true即可实现ajax,像原来的<asp:GridViewr id=”mygrid” runat=”server” />改为<anthem:GridView id=”mygrid” AutoUpdateAfterCallBack=true runat=”server”/>即可实现GridView的异步回调及刷新,而且原有GridView里面的自定义模版也完全不需要更改,比如模版里带了一个asp:linkbutton控件,那么也无需改为anthem:linkbutton也能正常实现无刷新回调。
3、 UpdateAfterCallBack方式
如果觉得直接设置控件为AutoUpdateAfterCallBack=true不够细致化,那么也可以直接在后台方法中通过设置相应控件为UpdateAfterCallBack=true来实现无刷新回调,其实现方式有点类似调用updatepanel的update方法。
页面:
<anthem:Button ID="btnSetText" runat="server" Text="Set Text" OnClick="btnSetText_Click" />
<anthem:Label ID="lbText" runat="server" />
</div>
后台方法:
{
lbText.Text = "This text is set on server side.";
lbText.UpdateAfterCallBack = true;
}
4、 重写原有控件
使用asp.net ajax会发现,对于包含在updatepanel中的一些第三方控件会出现一些不兼容问题,在Anthem.net中也一样存在这个问题,但Anthem.net的优势就是开源,只要第三方控件也是开源的话,我们就可以重写控件使其直接实现无刷新回调功能,官方例子中已经有相关演示,我就不多说了,而且我也会在下一篇的实战篇中改造FCKeditor控件,使其成为名符其实的FCKeditor For Anthem.net控件!