我有格式化工作日期和数字。我的链接格式化器只是出于某种原因中途工作。我进入网格的所有内容都是这样的链接:
?id=1
在URL中未使用(或包含)baseLinkUrl设置的地方。
这是我的JavaScript:
$(function () {
$("#d5d02a55-ba5e-46f2-a64a-05fd7870b273_list")
.jqGrid({
url: '/jqgrid2/getDataJson',
datatype: 'json',
mtype: 'GET',
colNames: ['Inv No', 'Date', 'Amount', 'Tax', 'Total', 'Notes'],
colModel: [{
"name": "invid",
"index": "invid",
"width": 55,
"formatter": "showlink",
"formatteroptions": {
"baseLinkUrl": "jsp/samplePage.jsp",
"target": "_blank",
"idName": "invid"
}
}, {
"name": "invdate",
"index": "invdate",
"width": 90,
"formatter": "date",
"formatteroptions": {
"srcformat": "yyyy-MM-dd",
"newformat": "MM/dd/yyyy"
}
}, {
"name": "amount",
"index": "amount",
"width": 80,
"align": "RIGHT",
"formatter": "number",
"formatteroptions": {
"decimalPlaces": 2
}
}, {
"name": "tax",
"index": "tax",
"width": 80,
"align": "RIGHT",
"formatter": "number",
"formatteroptions": {
"decimalPlaces": 2
}
}, {
"name": "total",
"index": "total",
"width": 80,
"align": "RIGHT",
"formatter": "number",
"formatteroptions": {
"decimalPlaces": 2
}
}, {
"name": "note",
"index": "note",
"width": 150,
"sortable": false
}
],
pager: '#d5d02a55-ba5e-46f2-a64a-05fd7870b273_pager',
rowNum: 5,
rowList: [5, 10, 25, 50],
sortname: 'invid',
sortorder: 'asc',
viewrecords: true,
multiselect: false,
gridview: true,
caption: '',
height: 'auto',
jsonReader: {
root: 'data',
page: 'currentPage',
total: 'totalPages',
records: 'totalRecords',
repeatitems: false,
id: 'id'
}
});
});
我的数据:
{ "currentPage" : "1",
"data" : [ { "amount" : 1000.0,
"invdate" : "2013-04-01 00:00:00",
"invid" : 1,
"note" : "No notes",
"tax" : 60.0,
"total" : 1060.0
},
{ "amount" : 200.0,
"invdate" : "2013-04-02 00:00:00",
"invid" : 2,
"note" : "",
"tax" : 12.0,
"total" : 212.0
},
{ "amount" : 500.0,
"invdate" : "2013-04-03 00:00:00",
"invid" : 3,
"note" : "",
"tax" : 30.0,
"total" : 530.0
},
{ "amount" : 400.0,
"invdate" : "2013-04-03 00:00:00",
"invid" : 4,
"note" : "Some notes",
"tax" : 24.0,
"total" : 424.0
},
{ "amount" : 200.0,
"invdate" : "2013-04-04 00:00:00",
"invid" : 5,
"note" : "",
"tax" : 12.0,
"total" : 2012.0
}
],
"limitRows" : "5",
"totalPages" : "3",
"totalRows" : "11"
}
答案 0 :(得分:1)
返回服务器的数据不包含"id"
属性。如果invid
列在您的网格中扮演id
的角色,您应首先将id: 'id'
中的jsonReader
更改为id: 'invid'
和秒(通常它是另一种选择,但是我建议使用两者)将key: true
属性添加到invid
列的定义。
下一个重要问题:您使用formatteroptions
代替formatoptions
。因此,您使用的大多数设置现在都将被忽略。
还有一个问题:您为formatoptions
的{{1}}使用了错误的值。您需要以PHP格式提供jqGrid数据,而不是例如here中描述的更常见的数据。如果您打开formatter: "date"
(请参阅here),您会找到一些使用日期示例和一些可能对您有所帮助的链接。