3

これは、ここに投稿された私の以前の質問のフォローアップです。jqgridに表示される約200KBの大量のデータを取得する場合があります。このような場合、最後のデータセットは表示されません。各レコードは改行文字で分割されます。データは次の形式です。

{"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にはページネーションは実装されていません。

どんなポインタでも大歓迎です。

ありがとう、

アシャ

4

1 に答える 1

3

まず、jqGridのすべての入力パラメーターの正しいタイプを使用することをお勧めします。ドキュメントには、列のあるテーブルがあり"Type"ます。列のタイプrowNumは整数です。したがって、rowNum: 9999の代わりにを使用する必要がありrowNum: '9999'ます。

さらに、常にgridview: truejqGridのオプションを使用することを強くお勧めします。すべてのデータを1ページに配置する場合、このような設定により、グリッドの塗りつぶしのパフォーマンスを何度も向上させることができます。

同様に、の内部のグリッドを変更することはお勧めしませんloadComplete。jqGridのパフォーマンスが低下します。たとえば、カスタムCSSクラスを定義できます

.myAltRows: { background: #DDDDDC }

オプションを使用しますaltRows: true, altclass: "myAltRows"rowattrまたは、コールバックを使用して、グリッドの選択した行にカスタムclassまたはカスタムを設定できます。style詳細については、回答を参照してください。

最後の発言。デフォルト値を持つオプション(たとえば)またはデフォルト値を持つtype: "GET", loadonce: false, sortname:'', multiselect: false, sortable: falseプロパティ(たとえば)を含めることはお勧めしません。オプションのデフォルト値の列とドキュメントのオプションを調べる必要があります。colModelalign: 'left'colModel

于 2013-01-30T08:43:06.433 に答える