我有以下内容,即Controller中的$ dataprovider:
$sql = 'select * from tbl_user order by id_user';
$count = 'select count(*) from tbl_user';
$dataProvider = new CSqlDataProvider($sql, array(
'keyField' => 'id_user',
'totalItemCount' => $count,
'sort' => array(
'attributes' => array(
'name',
),
),
'pagination' => array(
'pageSize' => 15,
),
));
视图中的和ClistView:
$this->widget('zii.widgets.CListView', array(
'dataProvider' => $dataProvider,
'sortableAttributes' => array(
'name' => 'Name',
),
));
排序依据:名称出现,但是当我点击没有任何反应时,即ajax请求有效,但我的记录没有排序。我错过了什么?感谢。
我用以下方法解决了问题:
$sql = 'select * from tbl_user';
$dataProvider = new CSqlDataProvider($sql, array(
'keyField' => 'id_user',
'totalItemCount' => $count,
'sort' => array(
'attributes' => array(
'name',
),
'defaultOrder' => array('name' => false)
),
'pagination' => array(
'pageSize' => 15,
),
));
这个想法是在sql语句中删除任何顺序,让csqldataprovider来处理它。