最初のグリッドパネルをタブにロードしてからloadData()関数を使用してデータをストアにロードする必要がありますが、現在は無限グリッドスクロールそれと。 は、loadDataの後に飛んで無限のスクロールをストアに統合する方法です。 私はExtJS 4.1を使用しています。 私を助けてください.... ここで私は試してみましたが動作していないコントローラとグリップビューパネルで私の現在のスクリプトを表示しています。以下のようにExtJS 4.1無限グリッドスクロールはloadDataを使用してダイナミックストアで動作しません
コントローラースクリプトに:
上記のスクリプトでvar c = this.getApplication().getController('Main'),
data = c.generateReportGridConfiguration(response,true),
tabParams = {
title: 'Generated Report',
closable: true,
iconCls: 'view',
widget: 'generatedReportGrid',
layout: 'fit',
gridConfig: data
},
generatedReportGrid = this.addTab(tabParams);
generatedReportGrid.getStore().loadData(data.data);
、私はAjax呼び出しの応答を得れば、tabParamsでグリッドパネルを追加し、グリッドのフィールドと列を設定し、最後になりますgridConfigのPARAMを使用してデータを渡しますグリッドにグリッドデータを供給します。私も扱っている
Ext.define('ReportsBuilder.view.GeneratedReportGrid', {
extend: 'Ext.grid.Panel',
alias: 'widget.generatedReportGrid',
requires: [
'ReportsBuilder.view.GenerateViewToolbar',
'Ext.grid.*',
'Ext.data.*',
'Ext.util.*',
'Ext.grid.PagingScroller',
'Ext.grid.RowNumberer',
],
initComponent: function() {
Ext.define('Report', {extend: 'Ext.data.Model', fields: this.gridConfig.fields, idProperty: 'rowid'});
var myStore = Ext.create('Ext.data.Store', {model: 'Report', groupField: 'name',
// allow the grid to interact with the paging scroller by buffering
buffered: true,
pageSize: 100,
autoSync: true,
extraParams: { total: 50000 },
purgePageCount: 0,
proxy: {
type: 'ajax',
data: {},
extraParams: {
total: 50000
},
reader: {
root: 'data',
totalProperty: 'totalCount'
},
// sends single sort as multi parameter
simpleSortMode: true
}
});
Ext.apply(this, {
dockedItems: [
{xtype: 'generateviewToolbar'}
],
store: myStore,
width:700,
height:500,
scroll: 'vertical',
loadMask: true,
verticalScroller:'paginggridscroller',
invalidateScrollerOnRefresh: false,
viewConfig: {
trackOver: false,
emptyText: [
'<div class="empty-workspace-bg">',
'<div class="empty-workspace-vertical-block-message">There are no results for provided conditions</div>',
'<div class="empty-workspace-vertical-block-message-helper"></div>',
'</div>'
].join('')
},
columns: this.gridConfig.columns,
features: [
{ftype: 'groupingsummary', groupHeaderTpl: '{name} ({rows.length} Record{[values.rows.length > 1 ? "s" : ""]})', enableGroupingMenu: false}
],
renderTo: Ext.getBody()
});
// trigger the data store load
myStore.guaranteeRange(0, 99);
this.callParent(arguments);
}
});
開始:以下のようにスクリプト=>http://dev.sencha.com/deploy/ext-4.0.1/examples/grid/infinite-scroll.js
私のグリッドパネルのスクリプトが含まれ、上記ページの http://dev.sencha.com/deploy/ext-4.0.1/examples/grid/infinite-scroll.html
:私は、以下の参考例によりグリッドパネルの設定を試してみましたサーバー側のクエリから制限しますが、グリッドのpageSizeプロパティが100であり、ensureRange関数の呼び出しパラメータが0,99であれば、一度にスクロールするだけでAJAX要求を送信しません.0,299を増やすと同時に3回AJAX呼び出しが発生します(0,100)、(100,200)、(2) 00,300)、最初のajax呼び出しのみのグリッド上のデータを表示し、垂直スクロールでは起動しません。
私はExtJsの新しい学習者ですので、お手伝いください... ありがとうございます。
スクロールバッファリング(とりわけ;)4.0.0)で、4.0.2a、4.0.7および4.1は、すべての悪い実装と多くのバグを持っていました。 4.0.7まで、無限スクロールを動作させるために必要なクラスには、クラス・ドキュメントがまったくありませんでした。これは役立つ可能性があります:http://www.sencha.com/forum/showthread.php?241424-4.1.1-buffered-stores-aren-t-buffered-when-loadData-is-used。 Extにはスクロールする機会が4回ありましたが、そうしなかったので、私たちは自分自身を書くことになりました。これは柔軟性があり、ビュー、カスタムコンポーネント、グリッドで動作します。 – pllee
フィルタを使用していますか? – MacGyver
解決済みですか?それは長い時間開いているように終了としてマークを取得すると良いでしょう – Scriptable