Domanda

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?

È stato utile?

Soluzione

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top