我正在使用 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 中是否可行,也许我只是没有正确处理这个字段。