首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Yii从其他小部件调用CButtonColumn

Yii从其他小部件调用CButtonColumn
EN

Stack Overflow用户
提问于 2014-05-20 18:24:48
回答 1查看 77关注 0票数 0

我已经创建了新的小部件来显示管理视图中的信息。最终视图必须与CGridView相同,但列的逻辑不同。一切正常,除了我尝试调用CButtonColumn列的时候。

代码语言:javascript
复制
foreach ($this->columns as $column) {
     if (is_array($column) && isset($column['class']) {
         $this->renderColumnWidget($column);
     }
}

/* ... */

protected function renderColumnWidget($column)
{
    $widgetClass = $column->class;
    unset($column->class);
    if (strpos($widgetClass, '.') === false) {
        $widgetClass = 'zii.widgets.grid.'.$widgetClass;
    }

    $this->widget($widgetClass, $column); // Error from here
}

因此,基本上在这里,我检查列中是否有class属性,并调用小部件。但是我得到了错误:CButtonColumn and its behaviors do not have a method or closure named "run".

我做错了什么?CButtonColumn没有run方法,我也不想扩展这个类。

EN

回答 1

Stack Overflow用户

发布于 2014-05-20 21:09:42

您可以将此函数作为如下函数来启动您的专栏

代码语言:javascript
复制
    protected function initColumns(){
        foreach($this->columns as $i=>$column) {
            if(is_string($column))
                $column=$this->createDataColumn($column);
            else {
                if(!isset($column['class']))
                    $column['class']='CDataColumn';
                $column=Yii::createComponent($column, $this);
            }
            if($column->id===null)
                $column->id=$id.'_c'.$i;
            $this->columns[$i]=$column;
        }
        foreach($this->columns as $column)
            $column->init();
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23757194

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档