我有两个使用相同模型的cgridview。 当我使用过滤器时,文本域名称是相同的(模型类)。
可以修改这个名字吗?
示例:
$model1 = new ClassName;
$model2 = new ClassName;
if(isset($_GET['cgrdiview_1'])) {
$model1->attributes = $_GET['cgrdiview_1'];
}
if(isset($_GET['cgrdiview_2'])) {
$model2->attributes = $_GET['cgrdiview_2'];
}
相反,我有:
$_GET['model_class']
对于cgridview
答案 0 :(得分:0)
是的,可以通过添加id字段来实现。
id属性指定HTML元素的唯一ID(该值在HTML文档中必须是唯一的。)
id属性最常用于指向样式表中的样式,并通过JavaScript(通过HTML DOM)来操作具有特定id的元素。
如果您选中Yii API Documentation for CGridView您可以看到可以为CGridview设置id field。
在您的视图中,更改CGridview代码以包含以下内容:
'id' => 'cgridview_1'
此代码需要添加到gridview的顶部。例如:
$this->widget('zii.widgets.grid.CGridView', array(
'id'=>'cgridview_1',
'dataProvider'=>$dataProvider,
'columns'=>array(
'title', // display the 'title' attribute
'category.name', // display the 'name' attribute of the 'category' relation
'content:html', // display the 'content' attribute as purified HTML
array( // display 'create_time' using an expression
'name'=>'create_time',
'value'=>'date("M j, Y", $data->create_time)',
),
array( // display 'author.username' using an expression
'name'=>'authorName',
'value'=>'$data->author->username',
),
array( // display a column with "view", "update" and "delete" buttons
'class'=>'CButtonColumn',
),
),
));
答案 1 :(得分:0)
我在每列中使用自定义过滤器解决了我的问题:
$this->widget('zii.widgets.grid.CGridView', array(
'id'=>'cgridview_2',
'dataProvider' => $data,
'filter' => $filter,
'columns'=>array(
array(
'name' => 'column1',
'filter' => CHtml::textField("cgridview2[column1]", $filter->column1),
),
array(
'name' => 'column2',
'filter' => CHtml::textField("cgridview2[column2]", $object->column2),
),