2012-06-18 48 views

回答

1

您可以扩展CGridView以添加该功能。

或者对rowCssClassExpression有些不好意思。

'rowCssClassExpression' => '\'" data-id="\' . $data->rowID' 
4

现代溶液(自的Yii 1.1.13)

这是现在能够使用rowHtmlOptionsExpression属性,该属性允许指定任意的HTML属性每个渲染表行做。例如:

'rowHtmlOptionsExpression' => '["id" => $data->id]' 

原来的答复(旧版)

不能直接因为CGridView不支持它,但是有几个简单的解决方案,你可以尝试的。

子类CGridView(好)

简单地创建自己的类MyGridView extends CGridView并重写renderTableRow方法吐出IDS的每一行上。看看the stock implementation,这对于class属性确实是你想要为id属性做的事情。

使用CSS类,而不是(不太好)的class属性

来说,rowCssClassExpression属性可以用来动态生成类的开箱。恕我直言,这是一个糟糕的解决方法,但它在那里。

+0

你并不需要继承CgridView,如Chung说(http://stackoverflow.com/a/18711448/ 1396839)可以使用rowHtmlOptionsExpression将属性传递给表格的TR标签。此外,您可以传递具有许多属性的数组,而不仅仅是id。 – alvaropgl

+1

@alwar:今天确实如此,但当时我没有写这个答案 - 'rowHtmlOptionsExpression'只是[在Yii版本1.1.13中添加的](http://www.yiiframework.com/files/CHANGELOG- 1.1.13.txt)。我正在更新相应的答案。 – Jon

8

CGridView有一个名为“rowHtmlOptionsExpression”的选项,你可以声明,如以下指定行的一个ID

'rowHtmlOptionsExpression' => 'array("id"=>$data->id)', 

它比黑客进入“rowCssClassExpression”

祝好!

-2

CGridView.rowHtmlOptionsExpression是不确定的

我不认为我们可以用rowHtmlOptionsExpression

相关问题