2016-12-12 7 views
-1

私はExtJs 4.2を使用していますが、Ext.grid.Panelを持っていますが、データが入っていますが、真に1つのフィールドに真の値を持つブール値フラグに基づいて、次に別のフィールドの場合は、両方のフィールドでfalseがfalseになります。これまで私はソーターを以下のように編集しています。ExtJsグリッドの行を並べ替えたいですか?

me.requesterListStore = new Ext.create('Ext.data.Store', { 
     id: 'requesterListStore', 
     model: 'Connex.Request.Model.RequesterModel', 
     buffered: true, 
     pageSize: 100, 
     leadingBufferZone: 50, 
     autoLoad: false, 
     remoteFilter: false, 
     purgePageCount: 5, 
     remoteSort: false, 
     sortOnLoad: true, 
     sorters: [ 
      { 
       property: 'isSmartIndexed', 
       direction: 'DESC' 
      }, 
      { 
       property: 'isAutoIndexed', 
       direction: 'DESC' 
      } 
     ], 
     proxy: { 
      type: 'ajax', 
      url: $context + 'services/requester/search', 
      actionMethods: { 
       read: 'POST' 
      }, 
      doRequest: function (operation, callback, scope) { 

       var writer = this.getWriter(), 
        request = this.buildRequest(operation, callback, scope); 

       if (operation.allowWrite()) { 
        request = writer.write(request); 
       } 

       Ext.apply(request, { 
        headers: this.headers, 
        timeout: this.timeout, 
        scope: this, 
        callback: this.createRequestCallback(request, operation, callback, scope), 
        method: this.getMethod(request), 
        jsonData: this.jsonData, 
        disableCaching: false // explicitly set it to false, ServerProxy handles caching 
       }); 
       Ext.Ajax.request(request); 
       return request; 
      }, 
      reader: { 
       type: 'json', 
       root: 'content', 
       totalProperty: 'total', 
       idProperty: 'id' 
      }, 
      writer: { 
       writer: new Ext.data.JsonWriter({ 
        getRecordData: function (record) { 
         return record.data; 
        } 
       }) 
      } 
     } 

    }); 
+0

グリッドは店舗に接続されていますか?ストアはバッファリングされていますか? –

+0

申し訳ありませんが、グリッドが店舗に接続されています。ストアはBuffered:trueに設定されます。 –

+0

あなたの並べ替えはグリッドに保存されていません –

答えて

0
sorters: [{ 
    property: 'isSmartIndexed', 
    direction: 'DESC' // or 'ASC' 
}, { 
    property: 'isAutoIndexed', 
    direction: 'DESC' // or 'ASC' 
}] 

お店にこれらの選別機を追加します。

真は常にfalseより大きい;)

attenctionをしてください、ここで書かれたように、あなたはbufferedStoreにsortingFuntionsを使用することはできません。

をストアがバッファリングされている場合は、prefetchDataは、インデックスによって保存されています、これはプリフェッチされたすべてのデータを無効にします。

あなたの場合、表示されるデータはグリッド上にのみ表示され、表示されるデータはロードされないためです。

Test it in this fiddle

+0

私はこれを試してみましょう!あなたの詳細な対応をありがとうございました! –

+0

私はこれをフィドルでテストすると完全に動作します。しかし、私のアプリケーションでそれを試しても効果はありません。もともと私のブラウザはキャッシュされていると思っていましたが、新しいコードがdevToolsに表示されます。すべてが同じ順序で来るようです。私は最初はこれがグリッドディスプレイに表示されていないフィールドのためだと思っていましたが、これをフィドルから削除してもまだ動作していました。私はそれをもう一度見て、目をくらませておくだろうが、あなたには素晴らしい提案があれば。 –

+0

'isSmartIndexed'がExt.data.Modelから変換されたブール値だった場合は問題になりますか? –

関連する問題