1

我正在尝试为 Yii 中的每个表行分配一个唯一的 ID CGridView

最好是$data->id来自数据库表的东西。

我在id为每个渲染的<tr>.

任何建议将不胜感激。

4

5 回答 5

8

CGridView 有一个名为 'rowHtmlOptionsExpression' 的选项,您可以像下面这样声明为行分配一个 id

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

这比侵入“rowCssClassExpression”要好

祝你好运 !

于 2013-09-10T05:43:19.750 回答
4

现代解决方案(自 Yii 1.1.13 起)

现在可以使用rowHtmlOptionsExpression属性来做到这一点,它允许将任意 HTML 属性分配给每个呈现的表格行。例如:

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

原始答案(早期版本)

不直接可能,因为CGridView不支持它,但是您可以尝试一些简单的解决方案。

子类 CGridView(好)

只需创建您自己的类MyGridView extends CGridView并覆盖该renderTableRow方法以在每一行上吐出 id。查看stock implementation,它对class属性所做的正是您想要对id属性执行的操作。

改用 CSS 类(不太好)

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

于 2012-06-19T08:44:12.390 回答
1

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

或者对 rowCssClassExpression 有点 hacky。

'rowCssClassExpression' => '\'" data-id="\' . $data->rowID'
于 2012-06-19T08:04:25.573 回答
0

Try the information I posted here: How to set key value in CGrideView when grid is populated from table-view

In essence, as long as your dataprovider to the CGridview provides the data->id in a form that it understands, it will auto handle the $data->id stuff for you automatically so that it's easily available to javascript.

于 2012-06-18T23:18:46.377 回答
-1

CGridView.rowHtmlOptionsExpression未定义

我不认为我们可以使用rowHtmlOptionsExpression

于 2014-04-16T12:23:29.323 回答