Sorting 哎。CGridView位于前端。不带$model的CActiveDataProvider->;搜索()
我不知道这是否可能,但我想一定是这样。 我需要在前端视图中显示一些数据-表格形式的公司列表: 公司名称1-国家1-网站1-等。。。 公司名称2-国家2-网站2-等。。。 等 我正试图使用CGridView实现这个目的 我的控制器:Sorting 哎。CGridView位于前端。不带$model的CActiveDataProvider->;搜索(),sorting,yii,frontend,cgridview,cactivedataprovider,Sorting,Yii,Frontend,Cgridview,Cactivedataprovider,我不知道这是否可能,但我想一定是这样。 我需要在前端视图中显示一些数据-表格形式的公司列表: 公司名称1-国家1-网站1-等。。。 公司名称2-国家2-网站2-等。。。 等 我正试图使用CGridView实现这个目的 我的控制器: public function actionList() { $sort = new CSort(); $sort->attributes = array( 'defaultOrder'=>'company_name DE
public function actionList()
{
$sort = new CSort();
$sort->attributes = array(
'defaultOrder'=>'company_name DESC',
'company_name'=>array(
'asc'=>'company_name ASC',
'desc'=>'company_name DESC',
),
'country'=>array(
'asc'=>'country ASC',
'desc'=>'country DESC',
),
);
$criteria = new CDbCriteria();
$criteria->order = "company_name DESC";
$criteria->condition = 'approve = :approve';
$criteria->params = array(':approve'=>1);
$dataProvider = new CActiveDataProvider('EuCompanies', array('criteria'=>$criteria,'sort'=>$sort));
$this->render('list',
array('dataProvider'=>$dataProvider,
));
}
我的看法是:
<?php
$this->widget('zii.widgets.grid.CGridView', array(
'dataProvider' => $dataProvider,
'columns'=>array(
'company_name',
'country',
'company_website',
'economic_sector',
'contact_person',
'email',
'phone_number'
),
));
?>
输出是一个很好的网格,它考虑了选择标准,并且可以单击“公司名称”和“国家”,但单击它们不会对列进行排序。我猜这是因为在dataProvider中不使用$model->search()就无法进行排序,或者我刚刚做错了什么 好的,解决了。有两点是错误的: 第一:
$criteria->order = "company_name DESC";
他比任何其他类型的人都要厉害。删除此字符串后,我的列将变得可排序
第二(默认排序不起作用):
不得不搬家
$sort->attributes = array(
'defaultOrder'=>'company_name DESC',
从属性到
$sort = new CSort();
$sort->defaultOrder = 'company_name ASC';
$sort->attributes = array(...
工作完成了,谢谢:)您看到了吗?