現在、固定ストアからデータを取得するグループ化機能を備えたグリッドがあります。
Ext.define('YUK.store.FakePendingDocs', {
extend: 'Ext.data.Store',
id: 'FakePendingDocs',
autoSync: false,
proxy: {
type: 'memory'
},
fields: [ { name: 'docId', mapping: 'did' }
, { name: 'name', mapping: 'name'}//, mapping : 'name'}
, { name: 'client',mapping: 'cid' }
, { name: 'description', mapping: 'description' }
, { name: 'uploadeddate', mapping: 'dl', type: 'date', dateFormat: 'MS' }
, { name: 'folder', mapping: 'fo' }
, { name: 'group', mapping: 'gr' }
],
groupers: [{
property: 'group',
direction: 'ASC'
}],.
data: [ ... ]
}
);
次に、グリッドで次のことを行います。
Ext.define('YUK.view.center.pendingdocuments.Panel', {
extend: 'Ext.grid.Panel',
alias: 'widget.documents',
id: 'documents',
title: 'My Documents',
store: 'FakePendingDocs',
hideHeaders: true,
forceFit: true,
groupField: 'group',
....
しかし、グリッドで選択内容が乱れているという問題があります (項目を選択して別の項目を取得します)。これを解決するために、このhttp://www.sencha.com/forum/showthread.php?208453 スレッドを見つけました。しかし、私は煎茶が初めてなので、これをオーバーライドする方法がわかりません。私は次のようなことをしました:
Ext.define('YUK.store.FakePendingDocs', {
extend: 'Ext.data.Store',
id: 'FakePendingDocs',
autoSync: false,
proxy: {
type: 'memory'
},
fields: [ { name: 'docId', mapping: 'did' }
, { name: 'name', mapping: 'name'}//, mapping : 'name'}
, { name: 'client',mapping: 'cid' }
, { name: 'description', mapping: 'description' }
, { name: 'uploadeddate', mapping: 'dl', type: 'date', dateFormat: 'MS' }
, { name: 'folder', mapping: 'fo' }
, { name: 'group', mapping: 'gr' }
],
groupers: [{
property: 'group',
direction: 'ASC'
}],.
data: [ ... ],
sort:function(){
var me = this, groups, g;
me.callOverridden(arguments);
groups = me.getGroups();
me.data.clear();
Ext.Array.each(groups, function (group) {
Ext.Array.each(group.children, function (child) {
me.data.add(child.internalId, child);
});
});
me.fireGroupChange();
}
}
);
しかし、これは機能しません。グリッドに配置することもできません。
誰かがこれで私を助けることができますか?
PS: グリッドのグループ化機能は次のようになります。
var groupingFeature = Ext.create('Ext.grid.feature.Grouping', {
groupHeaderTpl: '{name}'
});