这是我之前发布的here问题的后续内容。我有大量数据的情况,大约200KB将显示在jqgrid上。在这种情况下,永远不会显示最后的数据集。每个记录由换行符分隔。数据采用以下格式:
{"data":{"data":"\tat org.aaa.aaa.aaa.aaa.aaa.aaa(aaa.java:512)[147:org.aaa.aaa.aaa:9.1.1]\n\tat aaa.aaa.aaa.aaa.aaa.aaa(aaa.java:1789)[146:org.aaa:9.1.1]\n"}}
网格代码如下:
$("#grid").jqGrid({
type: "GET",
url: "/getdata",
datatype: "json",
colNames: [''],
colModel: [
{name: 'data', align: 'left', sortable: false}
],
jsonReader: {
root: "data",
cell: "",
id: function () {
return function () {
return $.jgrid.randId();
}
},
page: function() { return 1; },
total: function() { return 1; },
records: function(obj) { return obj.data.length; }
},
loadonce: false,
viewrecords: true,
sortname:'',
rowNum: '9999',
autowidth: true,
ignoreCase: true,
height: "auto",
multiselect: false,
sortable: false,
autoencode: true,
loadComplete: function() {
$("tr.jqgrow:even").css("background", "#DDDDDC");
},
// We will handle the errors with ajax error handlers for now
loadError: function(error){
displayError(error.responseText);
},
beforeProcessing: function (data) {
var items = data.data.split("\n"), i, l, item;
data.logs = [];
for (i = 0, l = items.length; i < l; i++) {
item = $.trim(items[i]);
if (item.length > 0) {
data.data.push([item]);
}
}
}
});
我尝试将rowNum设置为'',99999,没有任何效果。总行数wwas相同的行似乎从jqgrid中的显示中被切断。 jqgrid可以显示的数据量是否有限制?截至目前,jqgrid尚未实施分页。
非常感谢任何指针。
感谢,
阿沙
答案 0 :(得分:3)
首先,我建议您使用jqGrid的所有输入参数的正确类型。在the documentation中,您会找到包含"Type"
列的表格。 rowNum
列的类型是整数。因此,您应该使用rowNum: 9999
代替rowNum: '9999'
。
此外,我严格建议您始终使用jqGrid的gridview: true
选项。如果将所有数据放在一个页面上,这样的设置可以多次提高网格填充的性能。
同样地,我不建议您对loadComplete
内的网格进行任何修改。它降低了jqGrid的性能。您可以定义自定义CSS类,例如
.myAltRows: { background: #DDDDDC }
并使用选项altRows: true, altclass: "myAltRows"
。或者,您可以使用rowattr
回调在网格的选定行上设置自定义class
或自定义style
。有关详细信息,请参阅the answer。
最后一句话。我不建议您包含具有默认值的选项(例如,type: "GET", loadonce: false, sortname:'', multiselect: false, sortable: false
)或具有默认值的colModel
属性(例如align: 'left'
)。您应该检查文档的the option和colModel
options的默认值列。