1

我正在使用 jqGrid 来显示一组 JavaScript 对象。我要显示的值之一是对象的函数,而不是属性。在下面的示例中,所有值都是属性,但 '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 中是否可行,也许我只是没有正确处理这个字段。

4

1 回答 1

0

我想解决这个问题的另一种方法是简单地为这个对象创建一个新属性,并在我将它传递到要显示的网格之前将它设置在所有对象上(一旦在网格中我不期望值改变)

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

于 2012-08-31T14:11:31.370 回答