2013-02-09 16 views
7

Bir alan tarafından gruplandırılmasını, ancak gruplama başlığında farklı bir alan görüntülemek istediğim bir Ext.grid.Panel var. Örneğin, modelimde status_id ve status_name alanları varsa, status_id ile gruplamak istiyorum, ancak grup başlığında status_name'u gösterir.Bir Ext grid gruplama üstbilgisinde farklı bir alanın değeri nasıl gösterilir?

groupHeaderTpl seçeneğiyle oynamıştım ancak şimdiye kadar şans yok. Bu nasıl yapılabilir?

cevap

16

Sen

groupHeaderTpl:'{[console.log(values)]}' 

tüm doktorunun değerlerini gözlemlemek ve aradığınız değer elde etmek doğru yol seçin Bu şekilde yaparak grouperHeaderTpl değerlerini hata. Yapmanız gerekenler Bu durumda Burada

groupHeaderTpl: '{[values.rows[0].data.status_name]}' 

Ben verilere bu şekilde erişim olmamalı düşünce olsa bütün örnek

/* 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() 
}); 

http://jsfiddle.net/alexrom7/shZLf/1/

+0

Güzel çözüm bulabiliriz. –