简体   繁体   中英

Search in gridview yii2 using a button not with form

I have a gridview with pjax.

<div class="request-index">
<div id="ajaxCrudDatatable">
    <?=
    GridView::widget([
        'id' => 'crud-datatable',
        'dataProvider' => $dataProvider,
        'filterModel' => $searchModel,
        'pjax' => true,
        'columns' => require(__DIR__ . '/_columns.php'),
        'toolbar' => [
            ['content' =>
                Html::a('<i class="glyphicon glyphicon-plus"></i> Add Request', ['create'], ['role' => 'modal-remote', 'title' => 'Create new Requests', 'class' => 'btn btn-success']) .
                Html::a('<i class="glyphicon glyphicon-repeat"></i> Reload', [''], ['data-pjax' => 1, 'class' => 'btn btn-primary', 'title' => 'Reset Grid']) .
                '{toggleData}' .
                '{export}'
            ],
        ],
        'panel' => [
            'type' => 'primary',
            'heading' => '<i class="glyphicon glyphicon-list"></i> Requests listing',
            'before' => '<button type="button" class="btn btn-danger btn-secondary"> Belum Selesai : <strong>'.  $count_request_belum_selesai .'</strong> </button>',
            'after' => BulkButtonWidget::widget([
                'buttons' => Html::a('<i class="glyphicon glyphicon-trash"></i>&nbsp; Delete All', ["bulk-delete"], [
                    "class" => "btn btn-danger btn-xs",
                    'role' => 'modal-remote-bulk',delete this item'
                ]),
            ]) .
            '<div class="clearfix"></div>',
        ]
    ])
    ?>
</div>

if you see from code above, please concern with

'before' => '<button type="button" class="btn btn-danger btn-secondary"> Not finished : <strong>'.  $count_request_belum_selesai .'</strong> </button>',

When this button is clicked, I want to running a function in my model named RequestSearch :

 public function searchRequestBelumSelesai(){
    $query = Request::findAll(['tanggal_selesai' => NULL]);
    return $query;
}

Which is the gridview will be displayed the result, is it possible ?

In the action of the controller that will receive the click of your button, you must modify the dataProvider given to the View, so that it looks like something like this:

$dataProvider= new ActiveDataProvider([
    'query' => $your_model->searchRequestBelumSelesai(),
]);

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM