2017-03-24 80 views
0

我正在使用Yii2構建一個基於Web的應用程序。我使用Yii2的GridView,我想使用下拉式分頁,而不是使用系列按鈕的引導程序的默認分頁。我的GridView包裝有一個Pjax。這是我當前的代碼:如何使用jquery動態設置Yii2 ActiveDataProvider的頁面

<div class="custom-pagination"> 
    Page <?=Html::dropDownList('myPagination', '1', $pageOptions);?> Of <?=$pageCount;?> 
</div> 

//******** 
my gridview which is wrapped by pjax 
//******** 

<script type="text/javascript"> 
var base = "<?=Yii::$app->request->getAbsoluteUrl();?>"; 
$(".custom-pagination select").on('change', function(e){ 
    $.get(base, {'page': $(this).val()}, function(data) { 
     $.pjax.reload({container:'#kv-grid-demo-pjax', url: base}); 
    }); 
}); 
</script> 

在服務器端:

public function actionIndex() 
{ 
    $searchModel = new RotaryInputSearch(); 
    $dataProvider = $searchModel->search(Yii::$app->request->queryParams); 

    $pageCount = ceil($dataProvider->getTotalCount()/$dataProvider->getPagination()->getPageSize()); 
    $pageOptions = array(); 
    for($i=1; $i<=$pageCount; $i++) { 
     $pageOptions[$i] = $i; 
    } 

    if (isset($_GET['page'])) { 
     $dataProvider->pagination->page = $_GET['page']; 
     echo json_encode('success'); 
     die(); 
    } 

    return $this->render('index', [ 
     'dataProvider' => $dataProvider, 
     'searchModel' => $searchModel, 
     'pageCount' => $pageCount, 
     'pageOptions' => $pageOptions, 
    ]); 
} 

的pjax的工作和電網重新加載,但不會轉向其他網頁,然後停留1.我有頁不知道我應該怎麼做。請幫助...

+0

你請可以給多一點HTML和JS這是不夠的,瞭解你的問題 –

+0

這是我在我的控制器, js和視圖。你還想知道什麼其他部分? –

+0

在你的jquery get方法 –

回答

0

下面的代碼將正常工作對你

$(".custom-pagination select").on('change', function(e){ 
    $.pjax.reload({container:'#kv-grid-demo-pjax', url: base+'?page='+$(this).val()}); 
}); 
+0

對不起,評論太長,所以我會在這裏發表更多評論。它工作的很好,但不幸的是,這完全消除了網格的過濾器。 「加載到網格過濾器內的div」是什麼意思? –