jqgrid上显示的数据大小限制

时间:2013-01-29 23:06:28

标签: javascript jquery jqgrid

这是我之前发布的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尚未实施分页。

非常感谢任何指针。

感谢,

阿沙

1 个答案:

答案 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 optioncolModel options的默认值列。