Is there any way to set an initial sorting a CGridView? I have a DB table that contains: id | name | description | create_time... In my CGridView I want my data to be shown without the id (this can be done by setting columns in CGridView but I would like to know if there is any other method to eliminate this fields from dataProvider) and I want to have my data sorted after name ASC. How can I do this because it always sort after id and I can't set a criteria for CGridView?

有帮助吗?

解决方案

You can define a default order in your model respectively the CActiveDataProvider. The following snippet sorts by the column SortMeColumn by default.

public function search()
{
  $criteria = new CDbCriteria;
  $criteria->compare('ID', $this->ID, true);
  $criteria->compare('SortMeColumn', $this->SortMeColumn, true);

  return new CActiveDataProvider($this,
        array(
           'criteria' => $criteria,
           'sort' => array(
              'defaultOrder' => array(
                 'SortMeColumn' => CSort::SORT_DESC
              ),
           ),
        ));
}

See CSort for reference.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top