2012-05-17 84 views
3

我正在將相當大一部分舊的HTML代碼移植到ExtJS 4網格中,並且遇到了以下挑戰:我希望能夠爲以下挑戰設置自定義ID電網中的TD元素。據我所知,我需要覆蓋用於單元格創建的默認模板。我現在的模板是這樣的:在ExtJS 4 Grid中設置單元ID

Ext.view.TableChunker.metaRowTpl = [ 
    '<tr class="' + Ext.baseCSSPrefix + 'grid-row {addlSelector} {[this.embedRowCls()]}" {[this.embedRowAttr()]}>', 
    '<tpl for="columns">', 
    '<td class="{cls} ' + Ext.baseCSSPrefix + 'grid-cell ' + Ext.baseCSSPrefix + 'grid-cell-{columnId} {{id}-modified} {{id}-tdCls} {[this.firstOrLastCls(xindex, xcount)]}" {{id}-tdAttr}><div class="' + Ext.baseCSSPrefix + 'grid-cell-inner ' + Ext.baseCSSPrefix + 'unselectable" style="{{id}-style}; text-align: {align};">{{id}}</div></td>', 
    '</tpl>', 
    '</tr>' 
    ]; 

我可以爲了使用什麼樣的佔位符以能夠操縱的表格單元格的「ID =」屬性?

回答

8

請勿覆蓋TPL,只需設置一個自定義列renderer這將更新列的元數據:

columns: [{ 
    text: 'Blah', 
    dataIndex: 'blah', 

    renderer: function(value, metaData, record) { 
     metaData.tdAttr = 'id="someprefix-' + record.get('blah') + '"'; 
     return value; 
    } 
}, ... ] 
+0

嗯,這是一個有趣的想法...將很快檢查!謝謝 – clops

+0

@clops所以它工作與否? –

+0

是的,就像魅力!謝謝! – clops

0

的第一個答案對我來說,爲ID提取工作得很好很容易像這樣:

oncellclick:function(grid, row, col, e){ 
     alert(row['id']) 
    }