2

デフォルトでうまく機能する無限グリッドがあり、結果からページをうまくフェッチします。

ただし、列ヘッダーをクリックして列の 1 つで並べ替え順序を定義すると、並べ替え前とまったく同じデータを送り返しているにもかかわらず、グリッドが「読み込み中」メッセージでハングします (私は現時点では、目的をテストするためだけに、サーバー側の「ソート」変数を無視します。)

これはオープン ソース プロジェクトのためのものであるため、支援が必要な追加ソースを利用できるようにすることができます。

どんな助けでも大歓迎です。前もって感謝します。

よろしく、ジョン。

サーバーで次のリクエストを受け取ります。

"GET /lextjsapi/reader/tblname?_dc=1361204535173&page=1&start=0&limit=10&sort=%5B%7B%22property%22%3A%22id%22%2C%22direction%22%3A%22DESC%22%7D%5D HTTP/1.1" 200 832 "http://lextjs/sa-test/app.html"

これは PHP サーバー側のコードです。

echo json_encode(array('success' => true, 'total' => 1000, $model_name => $tblNameRows));

これはストアのコードです。

Ext.define('MyApp.store.tblnameStore', {
extend: 'Ext.data.Store',

requires: [
    'MyApp.model.tblname'
],

constructor: function(cfg) {
    var me = this;
    cfg = cfg || {};
    me.callParent([Ext.apply({
        autoLoad: true,
        remoteSort: true,
        storeId: 'tblnameStore',
        model: 'MyApp.model.tblname',
        buffered: true,
        leadingBufferZone: 10,
        pageSize: 10,
        purgePageCount: 0,
        trailingBufferZone: 10,
        proxy: {
            type: 'ajax',
            url: 'http://lextjs/lextjsapi/reader/tblname',
            reader: {
                type: 'json',
                root: 'tblname'
            }
        }
    }, cfg)]);
} });

これはグリッドのコードです:

Ext.define('MyApp.view.MyGridPanel2', {
extend: 'Ext.grid.Panel',

height: 250,
width: 450,
title: 'My Grid Panel',
store: 'tblnameStore',

initComponent: function() {
    var me = this;

    Ext.applyIf(me, {
        viewConfig: {

        },
        columns: [
            {
                xtype: 'gridcolumn',
                dataIndex: 'id',
                text: 'Id'
            },
            {
                xtype: 'gridcolumn',
                sortable: false,
                dataIndex: 'name',
                text: 'Name'
            },
            {
                xtype: 'gridcolumn',
                sortable: false,
                dataIndex: 'address1',
                text: 'Address1'
            },
            {
                xtype: 'gridcolumn',
                sortable: false,
                dataIndex: 'city',
                text: 'City'
            }
        ]
    });

    me.callParent(arguments);
} });
4

0 に答える 0