【问题标题】:How to assign unique id attribute to each table row of a CGridView?如何为 CGridView 的每个表行分配唯一的 id 属性?
【发布时间】:2012-06-18 21:52:44
【问题描述】:

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

最好是数据库表中的$data->id

我未能成功为每个呈现的<tr> 添加id 属性。

任何建议将不胜感激。

【问题讨论】:

    标签: yii cgridview


    【解决方案1】:

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

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

    这比侵入“rowCssClassExpression”要好

    祝你好运!

    【讨论】:

      【解决方案2】:

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

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

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

      原始答案(早期版本)

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

      子类 CGridView(好)

      只需创建您自己的类MyGridView extends CGridView 并覆盖renderTableRow 方法以在每一行上吐出ID。看看the stock implementation,它对class 属性的作用与您对id 属性所做的完全一样。

      改用 CSS 类(不太好)

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

      【讨论】:

      • 您不需要子类化 CgridView,正如 Chung (stackoverflow.com/a/18711448/1396839) 所说,您可以使用 rowHtmlOptionsExpression 将属性传递给表格的 TR 标记。此外,您可以传递具有许多属性的数组,而不仅仅是 id。
      • @alwar:今天确实如此,但不是在我撰写此答案时——rowHtmlOptionsExpression 只是added in Yii version 1.1.13。我正在相应地更新答案。
      【解决方案3】:

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

      或者对 rowCssClassExpression 有点 hacky。

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

      【讨论】:

        【解决方案4】:

        试试我在这里发布的信息: How to set key value in CGrideView when grid is populated from table-view

        本质上,只要 CGridview 的数据提供者以它可以理解的形式提供 data->id,它就会自动为您处理 $data->id 内容,以便 javascript 轻松使用它。

        【讨论】:

          【解决方案5】:

          CGridView.rowHtmlOptionsExpression 未定义

          我不认为我们可以使用rowHtmlOptionsExpression

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2016-10-19
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2019-12-19
            相关资源
            最近更新 更多