在 jqgrid 上显示的数据大小限制

Data size limit for display on jqgrid

本文关键字:数据 jqgrid 显示      更新时间:2023-09-26

这是我之前在这里发布的问题的后续。我有一些情况下,我们获得了大量数据,大约 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上尚未实现分页。

任何指示都非常感谢。

谢谢

阿莎

首先,我建议您使用正确的jqGrid所有输入参数类型。在文档中,您将找到具有"Type"列的表。rowNum列的类型为整数。所以你应该使用 rowNum: 9999 而不是 rowNum: '9999' .

此外,我强烈建议您始终使用jqGrid gridview: true选项。如果将所有数据放在一个页面上,这样的设置可以多次提高网格填充的性能。

同样,我不建议您对loadComplete内部的网格进行任何修改。它降低了jqGrid的性能。例如,您可以定义自定义 CSS 类

.myAltRows: { background: #DDDDDC }

,然后使用选项altRows: true, altclass: "myAltRows" 。或者,您可以使用rowattr回调对网格的选定行设置自定义class或自定义style。有关更多详细信息,请参阅答案。

最后一句话。我不建议您包含具有默认值的选项(例如,type: "GET", loadonce: false, sortname:'', multiselect: false, sortable: false)或具有默认值的colModel属性(例如align: 'left')。您应该检查选项的默认值列和文档的colModel选项。