3

かなりの量の古いHTMLコードをExtJS4グリッドに移植している最中で、次の課題に遭遇しました。グリッド内の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 に答える