3

我正在将大量旧 HTML 代码移植到 ExtJS 4 网格中,并且偶然发现了以下挑战:我希望能够为网格中的 TD 元素设置自定义 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=”属性?

4

2 回答 2

8

不要覆盖 tpl,只需设置一个自定义列渲染器,它将更新列元数据:

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

    renderer: function(value, metaData, record) {
        metaData.tdAttr = 'id="someprefix-' + record.get('blah') + '"';
        return value;
    }
}, ... ]
于 2012-05-28T14:39:12.520 回答
0

第一个答案对我来说效果很好,因为 id 提取很容易,如下所示:

oncellclick:function(grid, row, col, e){
        alert( row['id'])
    }
于 2015-02-06T22:56:26.080 回答