我已经创建了新的小部件来显示管理视图中的信息。最终视图必须与CGridView相同,但列的逻辑不同。一切正常,除了我尝试调用CButtonColumn列的时候。
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方法,我也不想扩展这个类。
发布于 2014-05-20 21:09:42
您可以将此函数作为如下函数来启动您的专栏
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();
}https://stackoverflow.com/questions/23757194
复制相似问题