Yii2 pjax gridview

Yii2 pjax gridview

به صورت پیش فرض هنگامی که در gridview در Yii2 مطلبی را جستجو می کنین در url شما با یک کوئری استرینگ طولانی مواجه می شوید

شکل زیر :
Capture2

خوب برای اینکه جستجوی شما در gridview به صورت ajax انجام شود همانند yii1 فریم ورک ویجتی با نام Pjax دارد که برای اینکار می توانید از آن استفاده کنید
برای استفاده شما باید این ویجت را در صفحه ای که gridview در آن استفاده شده است قرار دهید
نکته : gridview باید در داخل این ویجت باشد .

نکته : حتما باید ویجت پیجکس رو به این صوت صدا بزنین yii\widgets\Pjax
چه هنگامی که آن را شروع می کنید چه هنگامی که پایان می دهید .

 

<h2>

Yii2 pjax gridview

</h2>

 

\yii\widgets\Pjax::begin([
'enableReplaceState' =&gt; false,
'enablePushState'  =&gt; false,
]);
// echo $this-&gt;render('_search', ['model' =&gt; $searchModel]);
GridView::widget([
'dataProvider' =&gt; $dataProvider,
'filterModel' =&gt; $searchModel,
'columns' =&gt; [
['class' =&gt; 'yii\grid\SerialColumn'],
'title',
'title_persian',
['class' =&gt; 'yii\grid\ActionColumn'],
],
]);
\yii\widgets\Pjax::end();


در صورتی که از _search استفاده می کنید باید به این نکته توجه کنین که

echo $this-&gt;render('_search', ['model' =&gt; $searchModel]);

در داخل ویجت pjax باشد
در صورتی که پس از انجام کد بالا باز جستجو به صورت ajax انجام نشد
باید برای pjax یک container قرار دهید :

\yii\widgets\Pjax::begin([
'enableReplaceState' =&gt; false,
'enablePushState' =&gt; false,
'clientOptions' =&gt; [
'data-pjax-container' =&gt; 'buy_search',
]
]);

و در _search نیز data_pjax را برابر container پی جکس (pjax) قرار دهید

$form = ActiveForm::begin([
'action' =&gt;['index'],
'method' =&gt; 'get',
'options' =&gt; [
'data-pjax' =&gt; '#buy_search'
],
]);

Yii2 pjax gridview

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *