jQuery模板提案(4)
作者:dishuipiaoxiang 来源:Denis'Blog 发布时间:2010-03-30 18:27:00
ASP.NET Ajax 模板
在 ASP.NET的Ajax库支持客户端模板。这个库支持很多先进的功能:
伪变量--你可以在模板中用一组诸如代表模板实例当前索引的$index特别变量;
动态模板-- 在渲染JavaScript对象数组时,你可以动态的改变模板;
动态占位--在渲染JavaScript对象数组时,你可以动态的更改模板的占位符。
例如,您可以使用下面的代码在模板中渲染产品列表:
var products = [
{ name: "Laptop", price: 788.67 },
{ name: "Comb", price: 2.50 },
{ name: "Pencil", price: 1.99 }
];
Sys.require([Sys.components.dataView], function () {
$("#products").dataView(
{
data: products
});
});
DataView()方法用来在一个模板中显示系列产品。模板包含在名为product的div元素中。
<div id="products" class="sys-template"> <div id="{{ $id('product') }}"> Product Name: {{ name }} <br /> Product Price: {{ formatPrice(price) }} </div> </div>
请注意,ASP.NET Ajax模板只是一个dom元素。因为模板仅仅是一个DOM元素,模板就不需要包裹在SCRIPT或TEXTARE或HTML注释中。在这种情况下,一个DIV元素为每一个产品创建一个新实例。
此外,请注意$id()伪变量。$id()解决模板和元素id的有关问题。如果你为一个模板添加一个带有id的元素,模板用来收集选项,结果是将出现重复id。$id()伪变量为每一个模板实例生成唯一的ids,使你避免了这个问题。
ASP.NET Ajax还支持一种所谓的动态模板。想想以下,你已经为每一个新产品创建了一个模板,通常的产品模板看起来是这样的:
<!-- New template -->
<div id="newTemplate" class="sys-template">
<div>
<img src="new.gif" />
Product Name: {{ name }}
<br />
Product Price: {{ formatPrice(price) }}
</div>
</div>
<!-- Normal template -->
<div id="normalTemplate" class="sys-template">
<div>
Product Name: {{ name }}
<br />
Product Price: {{ formatPrice(price) }}
</div>
</div>
这两个模板其实是一样的,除非新的模板显示一个新的图像。
你可以在每一个模板显示之前创建一个itemRendering事件处理程序。在该程序中,你可以指定用来显示数据项的模板。
function itemRendering(dataView, args) {
// Get the current data item
var product = args.get_dataItem();
// Set the template dynamically
if (product.dateCreated.getFullYear() == 2010) {
args.set_itemTemplate("#newTemplate");
} else {
args.set_itemTemplate("#normalTemplate");
}
}
上面的代码使用两个模板中的一个来显示产品。如果产品是新的(创建于2010年)用newTemplate来显示,否则用normalTemplate模板。
ASP.NET Ajax还支持一种所谓的动态占位。动态占位使你可以在文档的不用位置显示不同项。例如,你可能希望你所有的新产品在你文档中的“新产品”区域显示:
<h1>New Products</h1>
<div id="newPlaceholder"></div>
<h1>All Products</h1>
<div id="normalTemplate" class="sys-template">
<div>
Product Name: {{ name }}
<br />
Product Price: {{ formatPrice(price) }}
</div>
</div>
请注意名为newPlaceholder的div元素。你希望所有新产品都出现在这里。
这里是你如何编写itemRendering处理程序在新的占位符中放置新产品--创建于2010的产品。
function itemRendering(dataView, args) {
// Get the current data item
var product = args.get_dataItem();
// Set the template dynamically
if (product.dateCreated.getFullYear() == 2010) {
args.set_itemPlaceholder("#newPlaceholder");
}
}
猜你喜欢
- parent.html 中的代码为:<iframe marginwidth="0"
- 当讨论Request对象内容时,要研究的集合之一就是ServerVariables集合。这个集合包含了两种值的结合体,一种是随同
- 如果您刚刚开始接触网页设计,是不是经常发生这样的问题呢?做好的网页在自己机器上可以正常浏览,而把页面传到服务器上就总是出现看不到图片,css
- asp判断网址格式是否合法代码 具体实现办法见下列代码:<% function checki
- 先来看看js中的Null类型表示什么?null用来表示尚未存在的对象,常用来表示函数企图返回一个不存在的对象,一般一个未定义的变量在初次使用
- 1、关于页面元素的引用通过jquery的$()引用元素包括通过id、class、元素名以及元素的层级关系及dom或者xpath条件等方法,且
- 可以使用 XDR(简化 XML-Data)架构创建关系数据的 XML 视图。然后可以使用 XPath 查询来查询这些视图。这类似于使用 CR
- 获取一组radio被选中项的值var item = $(’input[@name=items][@checke
- 代码如下:arr = array(12,52,14,43,24,58,15,64,24,57,17,56,45)&nbs
- 终于能出来透口气,写点东西了。前段太忙,也很郁闷,现在调整过来点了。我的设计原则就是在满足需求的前提下,尽可能的简化,简化,再简化。有一次跟
- 作为一个MySQL的系统管理员,你有责任维护你的MySQL数据库系统的数据安全性和完整性。本文主要主要介绍如何建立一个安全的MySQL系统,
- ASP给图片加水印是需要组件的...常用的有aspjpeg软件和中国人自己开发的wsImage软件,可以上网搜索下载这两个软件,推荐使用咱们
- 请问如何用OleDbDataAdapter来对数据库进行删除、修改和添加?OleDbDataAdapter是DataSet和数据源之间建立联
- 静态方法:将下面的代码复制到<body>~</body>内 程序代码 <table cellpadd
- 实体有五种预定义的XML实体,HTML编码者应该熟悉。XML文档中的字符&、<、>、"和'被分别表示为
- 用ASP.NET与SQL SERVER可是缘份最好了,稍大的程序一般第一先考虑的是SQL SERVER,只是一些很考虑经济的才使用ACCES
- 在document.form1.submit();后加document.body.innerHtml = "W
- 最近写一个小小的留言本;算是对AJAX的综合应用迈出了一小步在制作过程中有很多兴奋的体验 虽然和以前的制作方法比起来繁杂了一些但是整个页面的
- 插入视图的条件: 1.如果视图是基于一个基础表产生的,那么这就称为非连接视图,所有的非连接视图都是可以更新的,也就是说可以在该视图上进行,I
- 内容摘要:Microsoft建立了一种既灵活又强大的安全管理机制,它能够对用户访问SQL Server服务器系统和数据库的安全进行