2012-05-17 42 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']) 
    }