Saltar al contenido

¿Cómo habilitar y deshabilitar la ordenación en Yii2 GridView?

Solución:

Puede personalizar el orden de las columnas en su DataProvider. Por ejemplo, si usa ActiveDataProvider en tus GridView puede indicar columnas clasificables como a continuación:

$dataProvider = new ActiveDataProvider([
    'query' => Model::find(),
    'sort' => ['attributes' => ['column1','column2']]
]);

En el ejemplo anterior, solo column1 y column2 son clasificables.

También puede deshabilitar la clasificación de todas las columnas como se muestra a continuación:

'sort' =>false

Se sugiere echar un vistazo a Yii2documento oficial de: Clase yii data Sort Como lo define:

Ordenar representa información relevante para la ordenación.
Cuando los datos deben ordenarse según uno o varios atributos, podemos usar Ordenar para representar la información de ordenación y generar hipervínculos apropiados que pueden conducir a acciones de ordenación.

Además de la respuesta de Ali, para las columnas agregadas y relacionadas, puede hacer lo siguiente:

public function actionIndex()
{
    $dataProvider = new ActiveDataProvider([
          'query' => User::find()->joinWith('role'),
          'sort' => ['attributes' => [
                   //Normal columns
                   'username',
                   'email',
                   //aggregated columns
                   'full_name' => [
                        'asc' => ['first_name' => SORT_ASC, 'last_name' => SORT_ASC],
                        'desc' => ['first_name' => SORT_DESC, 'last_name' => SORT_DESC],
                        'default' => SORT_DESC
                   ],
                   //related columns
                   'role.name' => [
                        'asc' => ['user_role.name' => SORT_ASC],
                        'desc' => ['user_role.name' => SORT_DESC],
                        'default' => SORT_DESC
                   ],
              ],],
    ]);
}

Fuente: http://www.yiiframework.com/doc-2.0/yii-data-sort.html

Si desea deshabilitar la clasificación desde la vista de cuadrícula para una columna en particular, haga lo siguiente:

 [
     'attribute' => 'name',
     'enableSorting' => false
 ],

mediante el uso 'enableSorting' => false

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *