使用ComponentArt Grid中的客户端模板ComponentArt的表格控件具有最新的模板技术:客户端模板.通过ComponentArt的客户端渲染技术来实现,客户端模板扩充了模板技术到客户端,使用客户端脚本代替服务器端脚本可以允许数据绑定到客户浏览器, 对ComponentArt表格使用客户端模板前,必须浏览一遍Web.UI控件中的模板概述,根据你的需要,也许服务器端模板更适合你的程序 概述客户端模板由HTML标记和客户端数据绑定表达式组成.这个表达式由JavaScript写成,每个表达式在客户端呈现时计算并由计算结果替换,因此,每个表达式将计算成一个字符串 下面是一个用于表格数据元素的客户端模板的例子 ClientTemplate for ## DataItem.GetMember("Name").Value ## rendered at ## (new Date()) ##
在定义之后,客户端模板有助于通过属性显示元素,我们应该通过设置属性DataCellClientTemplateId为"NameTemplate"来建立模板到表格列的联系 通过这种使用,客户端模板能够利用预定义的DataItem对象。当数据需要提供给客户端数据绑定,这个名称会通过客户端模板机制被预定义。在上例中,客户端模板被用于表格元素,所以数据行会被预设定到通常被绑定的表格行中。其他被利用的变量是双亲,指向控件(这里指ComponentArt_Grid对象)的主客户端对象 注意:服务器端绑定语句和服务器控件不能包含在客户端模板中。如果需要这种功能,客户端模板不能使用 有用的技术再一对'##'定界符之间的语句是一些被认为是字符串的JavaScript代码。这样就允许客户端模板定义不受限制的复杂逻辑。下面是一些可能用到的有用技术: 客户端模板中的条件逻辑通常,被客户端模板包含的内容依赖于被模板绑定的数据。一个普通的例子就是包含Update/Delete链接到表格的某些行,而不是其它(如用户的表达式),下面是个例子:
## DataItem.GetMember('CanBeEdited').Value == false ?
"Can not edit" : "Edit" ##
这里我们使用条件操作来根据绑定的数据产生一个不同的模板内容。列可以编辑的Items (行)会简单的在使用了这个模板的元素中输出一个静态的,其他的会包含一个引发行编辑的链接 注意:由于嵌套引用和客户端模板在客户端被处理为JavaScript字符串,我们必须在语句中作一些更多的引用的转义。下面的文章显示了怎样避免这种转换和使你的客户端模板更清晰 从客户端模板调用外部函数当多行的客户端模板语句开始变复杂时,我可以求助于外部函数来封装他们。在客户端模板语句中一个简单的函数调用 使得模板更简单的读取和调试。随意的通过数据行及父容器是程序需要的主要内容,并且通过他可以作很多事情,只要他返回的是字符串。例如,我们可以使用能够返回需要的内容的函数重作前面的条件例子 function GetEditContent(item) { if(item.GetMember('CanBeEdited')) { return "Edit"; } else { return "Can not edit"; } } 据此,我们客户端现在只需要调用产生函数的内容
## GetEditContent(DataItem) ##
这样,客户端逻辑能够被用于增强ComponentArt Grid的客户端可用视觉元素的呈现效果 |
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/23109131/viewspace-687405/ ,如需转载,请注明出处,否则将追究法律责任。