有什么方法可以使用对象的函数作为jqGrid数据数组的值?

时间:2012-08-30 23:03:14

标签: jqgrid

我正在使用jqGrid来显示JavaScript对象的数组。我想要显示的值之一是对象的函数,而不是属性。在下面的示例中,所有值都是除“timeliness()”之外的属性,“timeliness()”是计算交付日期和到期日之间差异并返回及时性值的函数。

$("#list").jqGrid({
  datatype: 'local',
  data: assignments,
  colNames: ['Project', 'Date Due', 'Date Delivered', "Timeliness"],
  colModel: [
    {name: 'project.title', index: 'project.title', width: 100}, 
    {name: 'title', index: 'title', width: 250}, 
    {name: 'dueDate',index: 'dueDate', width: 100},
    {name: 'deliveryDate', index: 'deliveryDate', width: 100},
    {name: 'timeliness()', index: 'timeliness()', width: 100}
  ],
  sortname: 'Project',
  rowNum: 10000,
  sortorder: 'asc',
  viewrecords: true,
  loadonce: true,
  gridview: true,
  height: 'auto',
  caption: 'Projects'
});

我已经尝试过如图所示,但未调用该函数且未返回任何值。我试过没有括号(例如名称:及时性),并按预期返回函数定义。

使用格式化程序可以正常工作,但是我无法对列进行排序(这是用户想要排序的列)。我想到解决这个问题的另一种方法就是为这个对象创建一个新属性,并在我将它传递给要显示的网格之前将其设置在所有对象上(一旦在网格中我不期望值改变)。只是有兴趣了解jqGrid中是否可以这样做,也许我只是没有正确处理这个字段。

1 个答案:

答案 0 :(得分:0)

  

我认为解决这个问题的另一种方法就是为这个对象创建一个新属性,然后在我将它传送到网格之前将其设置在所有对象上(一旦进入网格我就不会期望值改变)

这是最简单的解决方案。请记住,jqGrid旨在处理许多不同类型的数据源,其中大多数涉及来自外部源(例如XML或JSON)的数据,其中函数不适用。