在ExtJs中反向RowNumberer?

时间:2013-06-26 15:51:52

标签: javascript extjs

在ExtJS 3.3.1中的

如何以desc顺序获取rowNumberer头,目前显示1,2,3,4,......

这是标题示例

..
{header:'id', dataIndex:'id', hidden:true },
new Ext.grid.RowNumberer(),
{header:'Folio:', dataIndex:'folio' },
...

1 个答案:

答案 0 :(得分:2)

看起来您可以覆盖渲染器功能。或者,如果您要重新使用此技术,请使用自己的渲染器派生自己的ReverseRowNumberer类。这是现有的渲染器(在4.1中):

renderer: function(value, metaData, record, rowIdx, colIdx, store) {
    if (this.rowspan){
        metaData.cellAttr = 'rowspan="'+this.rowspan+'"';
    }

    metaData.tdCls = Ext.baseCSSPrefix + 'grid-cell-special';
    return store.indexOfTotal(record) + 1;
}

您可以保持相同的元数据样式并将最终返回值更改为

return store.getCount() - store.indexOfTotal(record);

我没有运行3.x Ext安装,但似乎渲染器签名在3.x和4.x之间保持不变。如果您查看商店的文档,您会看到3.x中有indexOf。或者您可以直接使用row索引值。如果您没有启用分页,这些将是简单有效的。如果你确实有分页,你可以使用商店的getTotalCount方法,并以某种方式自己找到你的索引。关键是,对于商店的大多数用途,您在渲染器方法args中有足够的信息可用于计算所需的行号值。

renderer: function (value, meta, record, row, col, store) {
    // set up the meta styles appropriately, etc.

    // then:
    return store.getCount() - row;
}