0
我在我的視圖中有一個表單,它從下拉列表中選擇列。 SqlDataProvider用於從生成的查詢中獲取數據我一直在嘗試將CGridView與SQLDataProvider結合使用,它的工作方式有點不錯,但仍然存在一些分頁問題。我沒有任何keyField,所以我給它我的第一列,沒有keyField它不起作用。CGridView分頁不起作用。 Yii
這裏是我的行動:
public function actionIndex()
{
$tables = Yii::app()->db->schema->getTables();
if(isset($_POST['yt0'])){ //if from submitted
$query = $this->generateQuery();
$count=Yii::app()->db->createCommand('SELECT COUNT(*) FROM (' . $query . ') as count')->queryScalar();
$dataProvider = new CSqlDataProvider($query, array(
'keyField' => $firstColumn,
'totalItemCount'=> $count,
'pagination'=> array(
'pageSize'=>20,
),
));
$columns = $this->getColumnNamesWithoutTable();
$this->render('index',
array( 'tables' => $tables,
'query' => $query,
'dataProvider' => $dataProvider,
'columns' => $columns
)
);
}else{
$this->render('index', array('tables' => $tables));
}
}
這裏的小部件代碼視圖,根據我看過,分頁應該自動工作,是不是因爲我用的是自定義查詢,而不是Yii的模型?
$this->widget('zii.widgets.grid.CGridView', array(
'dataProvider'=>$dataProvider,
'enablePagination'=> true,
));
它首次顯示數據,但下一個按鈕不起作用。