フィールドごとにグループ化したいExt.grid.Panelがありますが、グループ化ヘッダーに別のフィールドを表示します。たとえば、モデルにフィールドがある場合、status_id
でstatus_name
グループ化したいのですが、グループヘッダーにをstatus_id
表示します。status_name
私はgroupHeaderTpl
オプションをいじってみましたが、今のところ運がありません。これはどのように行うことができますか?
フィールドごとにグループ化したいExt.grid.Panelがありますが、グループ化ヘッダーに別のフィールドを表示します。たとえば、モデルにフィールドがある場合、status_id
でstatus_name
グループ化したいのですが、グループヘッダーにをstatus_id
表示します。status_name
私はgroupHeaderTpl
オプションをいじってみましたが、今のところ運がありません。これはどのように行うことができますか?
次のようにして、grouperHeaderTpl 値をデバッグできます。
groupHeaderTpl:'{[console.log(values)]}'
そうすれば、考えられるすべての値を観察し、探している値を取得するための正しいパスを選択できます。この場合、あなたがする必要があるのは
groupHeaderTpl: '{[values.rows[0].data.status_name]}'
ここで例全体を見つけることができます
/* Sample Data */
var data = [
{ "status_id": 1, "status_name": "Pending"},
{ "status_id": 2, "status_name": "Ready"},
{ "status_id": 3, "status_name": "Processing"},
{ "status_id": 4, "status_name": "Unavailable"},
{ "status_id": 5, "status_name": "Ready"},
];
/* Model */
Ext.define("StatusModel", {
extend: 'Ext.data.Model',
fields: ['status_id', 'status_name']
});
/* Store */
Ext.create('Ext.data.Store', {
storeId:'statusStore',
model: "StatusModel",
groupField: 'status_id',
data: data,
proxy: {
type: 'memory',
reader: {
type: 'json'
}
}
});
/* Grouping Feature */
var groupingFeature = Ext.create('Ext.grid.feature.Grouping',{
groupHeaderTpl: '{[values.rows[0].data.status_name]}'
});
/* Grid Panel */
Ext.create('Ext.grid.Panel', {
title: 'Status',
store: Ext.getStore('statusStore'),
columns: [
{ text: 'Id', dataIndex: 'status_id' },
{ text: 'Name', dataIndex: 'status_name', flex: 1}
],
features: [groupingFeature],
renderTo: Ext.getBody()
});