在使用jTemplate插件一文中我们共同领略了jTemplate插件带给我们的灵活,在这个JSON表现尤为流行和广泛支持的时代,这无疑给了我们很大的便利来提供更好的UX(User eXperience)。在ASP.NET AJAX(目前为Preivew3)4.0中也提供了类似的功能,今天我们就来一起看看如何使用ASP.NET AJAX 4.0 Template。
引入AJAX类库和相关命名空间
要使用ASP.NET AJAX 4.0必须首先获得4.0的JS类库。你可以在CodePlex上得到:http://www.codeplex.com/aspnet/Wiki/View.aspx?title=AJAX&referringTitle=Home。 AJAX4.0提供了对ADO.NET Data Service的客户端支持,数据模板,数据源和数据视图控件,以及数据绑定和其他一些功能。下载的类库中有两个JS文件:MicrosoftAjaxTemplates.js和MicrosoftAjaxAdoNet.js。首先将其引用到页面文件中,为了使用DataView和Template功能,需要导入相关命名空间:
<body
xmlns:sys="javascript:Sys"
xmlns:dv="javascript:Sys.UI.DataView"
sys:activate="*">
<form id="form1" runat="server">
<asp:ScriptManager ID="manager1" runat="server">
<Scripts>
<asp:ScriptReference Path="~/Library/MicrosoftAjaxAdoNet.js" />
<asp:ScriptReference Path="~/Library/MicrosoftAjaxTemplates.js" />
</Scripts>
</asp:ScriptManager>
</body>
这里我么引入了sys命名空间和Sys.UI.DataView命名空间。因为这是相关控件在JS类库中所在的命名空间。sys:activate表明拥有sys:atacth标记的element将在当前的文档中激活,这样在将模板附加到DataView时将会生效。*表示激活所有元素。
定义简单的模板并生成
好了,接下来我们定义一个简单的模板来,并通过消费ADO.NET Data Service来绑定数据源。需要注意的是一个定义好的模板必须具有sys:attach=”dv”属性,这表明这个模板对于DataView空间来说是有效的,并且AJAX类库会在初始化过程中来关联。如果sys:attach没有被声明,在执行set_data()方法时会产生一个空引用的错误。
<div>
<ul id="customerListView" class="sys-template" sys:attach="dv">
<li>{{ CompanyName }}</li>
</ul>
</div>