Yii CListView Ajax paginator + History Back

时间:2012-08-29 17:02:06

标签: php ajax yii browser-history

控制器页面 ActionIndex 呈现包含小部件的页面 CListView
在控制器中:

  

public function actionIndex()
  {
  model = new Pages();
  $ this-> render('index',array(
  'pages'=> $ model,
  ));
  }

查看索引:

  

$ this-> widget('zii.widgets.CListView',数组(
  'dataProvider'=> $ dataProvider,
  'viewData'=>数组('switch'=> true),
  'enableHistory'=>真正,   'id'=> 'pages_list',
  'itemView'=> '_view',
  'template'=> '{pager}
{items}
{pager}',
  ));

现在的实际问题:
在ListView paginatore链接中,如下所示:

  

http:// localhost / pages / index / Pages_page / 1 /
  http:// localhost / pages / index / Pages_page / 2 /
  http:// localhost / pages / index / Pages_page / 3 /

但是在地址栏中插入了一个链接 - 这是不正确的。这些是:

  

Http:// localhost / pages /?/ pages / index / Pages_page / 3 / =

当然,不要翻页。
如果您重新移动到任何其他页面,该链接已经采用以下形式:

  

Http:// localhost / pages /?/ pages / index // pages / index / Pages_page / 3 /// ajax / pages_list / Pages_page / 4 / =

据我了解,有必要选择将侧面设置路由到URLManager'e 只是不确定它是什么。

3 个答案:

答案 0 :(得分:0)

您的控制器代码有一些错误。对actionIndex()使用以下内容。

/**
 * Lists all models.
 */
public function actionIndex()
{
    $dataProvider=new CActiveDataProvider('Pages');
    $this->render('index',array(
        'dataProvider'=>$dataProvider,
    ));
}

我测试了你的视图index.php代码,它运行正常。

答案 1 :(得分:0)

如果禁用enableHistory工作正常。我找不到真正的解决方案

答案 2 :(得分:0)

尝试删除

'id' => 'pages_list',

在视野中。