我正在使用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中是否可以这样做,也许我只是没有正确处理这个字段。
答案 0 :(得分:0)
我认为解决这个问题的另一种方法就是为这个对象创建一个新属性,然后在我将它传送到网格之前将其设置在所有对象上(一旦进入网格我就不会期望值改变)
这是最简单的解决方案。请记住,jqGrid旨在处理许多不同类型的数据源,其中大多数涉及来自外部源(例如XML或JSON)的数据,其中函数不适用。