簡體   English   中英

我如何定制Yii2 gridview排序?

[英]How i do custom Yii2 gridview sort?

如何使用自定義的gridview標題進行排序?

請在Yii2 gridview小部件dataprovider給出labelheader之間的區別。

這是我的代碼:

    <?= GridView::widget([
            'dataProvider' => $dataProvider,
            'columns' => [
                 [
                   'class' => 'yii\grid\DataColumn',
                   'value' => function ($data) {
                    return $data->myTitle; 
                    },
                   'headerOptions' => ['style'=>'text-align:center'],
                   'header' => 'Page Title',
                   'label' => 'Title'
                ],
   ]); ?>

headerlabel執行相同的功能?

如何在$data->myTitle執行排序?

這是我的輸出屏幕:

在此輸入圖像描述

我想要頁面標題,狀態,修改日期應該是活動的。

提前致謝。

找到了答案。

請在搜索模型中向ActiveDataProvider添加屬性。

$dataProvider = new ActiveDataProvider([
        'query' => $query,
        'pagination' => [
                'pageSize' => 5,
                ],
        'sort' => ['attributes' => ['myTitle']],
       ]);

在窗口小部件中添加屬性選項:

    <?= GridView::widget([
            'dataProvider' => $dataProvider,
            'columns' => [
                 [
                   'class' => 'yii\grid\DataColumn',
                   'value' => function ($data) {
                    return $data->myTitle; 
                    },
                   'headerOptions' => ['style'=>'text-align:center'],
                   'attribute' => 'myTitle',
                   'label' => 'Page Title'
                ],
   ]); ?>

由於myTitle是數據庫中的字段而不是自定義值,因此您只需使用屬性即可 其余可能是不必要的,例如默認classDataColumn

'columns' => [ 
    [ 
        'attribute' => 'myTitle',
        'label' => 'Label',
    ]

我不太清楚我理解你的問題,但排序選項可以包含在你的modelsearch.php 所以在你的情況下你必須這樣做。

$dataProvider = new ActiveDataProvider([
            'query' => $query,
            'sort'=> ['defaultOrder' => ['your_column'=>SORT_ASC]]
        ]);

如果myTitle是數據庫中的一個字段,為什么要使用如此長的語法。 只是

'Columns'=>[
           .. 
           'myTitle',
           ..
           ],

應該工作正常,應該活躍進行排序

如果你想為列提供不同的標題/標簽,請使用標簽而不是標題,因為標題只是一個單元格內容,不能用於排序,而標簽可以。 細節

[
..
'attribute'=>'myTitle',
'label' => 'Page Title'
..
],

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM