【问题标题】:Create Custom Row in yii Cgridview在 yii Cgridview 中创建自定义行
【发布时间】:2014-04-15 18:52:50
【问题描述】:

我创建了一个 yii Cgridview,但是如何在其中创建自定义行。我想制作与数据库无关的静态数据的自定义行? 问题类似于下面

http://www.yiiframework.com/forum/index.php/topic/47751-insert-first-row-in-cgridview/

insert static first row in cgridview yii

【问题讨论】:

  • 你尝试过吗?
  • @alex 是的,我试图在模型的搜索功能中合并 cactive dataprovider 数据和静态数据,但由于我是 yii 新手,所以我怎么能做到这一点?我无法得到堆栈溢出的任何答案.感谢提前帮助
  • 为什么指向这个问题

标签: php activerecord yii cgridview


【解决方案1】:

检查这个网格行

array(
    'name'=>'some_name',
    'value'=>'$data->getCountryNameOrStaticStringOrWhatever()',
),

在模型中

public function getCountryNameOrStaticStringOrWhatever(){
    return 'my static content or whatever';
}

【讨论】:

  • 感谢 alex 的帮助,但实际上我想要一行,例如我的 cgridview 中有两列(id,country_name),数据是通过模型中的 cactivedataprovider 获取的,但我必须在该网格中插入静态行查看
  • 所以“数据” - 那里是静态的字符串
  • 我必须将 0 和 allcountries 分别放在 id 和 country_name 列中
  • 我更新了答案,在模型方法 getCountryNameOrStaticStringOrWhatever 中你可以返回任何你需要的东西
  • 再更新一次,您可以随时创建自己的 GridColumn,但是这种方法可以让您打印任何内容
【解决方案2】:

你可以用 javascript 和 jQuery 做到这一点:

'afterAjaxUpdate' => 'addStaticRaw', 添加到 CGrid 配置中

并注册js脚本:

function addStaticRaw(){
  $('#party-ledger-grid tbody tr:first').before("<tr><td>Your static raw blah blah</td></tr>");
}

【讨论】:

    【解决方案3】:

    我一直在寻找类似的解决方案并遇到了这个问题:

    $this->widget('zii.widgets.grid.CGridView', array( 'id'=>'something', 'dataProvider'=>$provider, 'columns'=>array( array( 'name' => 'name', 'header' => 'Name', 'footer' => 'name column for extra row', ), array( 'name' => 'email', 'header' => 'e-Mail', 'footer' => 'email column for extra row' ), ) )

    只需使用额外行中的数据填写每列的页脚元素。

    它就像一个魅力!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-22
      • 2011-02-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多