2011-04-29 61 views
8

在yii的CGridView我可以通过使用$ row来获取当前行号。但是,这仅返回当前页面内的行索引。我真正需要的是在所有页面中获得绝对行号。获取网格中的绝对行号

我使用yii,所以我的梦想应该成为“容易”,所以我期望答案不应该引导我添加一个特殊字段到数据提供者或访问寻呼机并获取当前页码,然后乘数字bla bla bla。

谢谢

+0

好问题。我很好奇:为什么你需要这个?我猜这将需要一个小的自定义代码,因为你的问题位于DataProvider(它是分页,而不是CGridView)。 – joostdevries 2011-04-29 16:29:47

+0

@ DV98,感谢您的反馈和关于DataProvider的信息。我只需要在网格中添加一个序列号。够公平,嗯? – mmonem 2011-04-29 19:07:56

回答

28

你解决了吗?如果不是这样,我为您提供以下解决方案

$this->widget(
    'zii.widgets.grid.CGridView', 
    array(
    'columns'=>array(
     array(
     'header'=>'No.', 
     'value'=>'$this->grid->dataProvider->pagination->currentPage * $this->grid->dataProvider->pagination->pageSize + ($row+1)', 
    ), 
    ), 
)); 

基本上就可以从数据提供器访问当前页和页面大小变量,你用它来计算整个数据的“行号”。为什么$ row + 1?因为$行从0希望这有助于启动:d

+1

非常有帮助谢谢@ZaQ – nu6A 2012-05-10 12:42:39

+0

冠军,冠军 – surfer190 2016-04-15 13:17:56

+0

我在2016年,感谢令人震撼的定制@。@ – Davuz 2016-04-26 17:20:03