0

在 ExtJS 3.3.1 中,如何按 desc 顺序获取 rowNumberer 标头,当前显示 1,2,3,4,...

这是标题示例

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

1 回答 1

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 之间保持不变。如果您查看商店的文档,您会发现您indexOf在 3.x 中可用。或者您可以直接使用row索引值。如果您没有启用分页,这些将是简单有效的。如果确实有分页,则可以使用 store 的getTotalCount方法并以某种方式自己找到索引。关键是,对于 Store 的大多数用途,您在渲染器方法 args 中有足够的可用信息来计算您需要的行号值。

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

    // then:
    return store.getCount() - row;
}
于 2013-06-26T17:55:44.013 回答