ITPub博客

首页 > Linux操作系统 > Linux操作系统 > ComponentArt.web.ui中文帮助之Grid(四)

ComponentArt.web.ui中文帮助之Grid(四)

原创 Linux操作系统 作者:fangqm 时间:2011-02-17 11:48:18 0 删除 编辑
 
 

使用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博客 ” ,链接:http://blog.itpub.net/23109131/viewspace-687405/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2010-03-24

  • 博文量
    297
  • 访问量
    735466