0

私は問題があります。私は ajax コメント追加を使用しているため、リストビューを更新する必要があります。その後、リストビューの最後のページを選択する必要があります。

これを使用して、ロード時に最後のページを選択できます

$dataProvider = new CArrayDataProvider($model->comments);
$pager=$dataProvider->pagination;
$pager->itemCount=$dataProvider->totalItemCount;
if(!Yii::app()->request->isAjaxRequest)
   $pager->currentPage=$pager->pageCount;

clistviewを手動で更新できます

$.fn.yiiListView.update("commentsList");

しかし、私はこれを一緒に行うことはできません:)また、データ配列をjavascript関数の更新に渡そうとしました。したがって、ajax を使用してコメントを追加する必要があります。次に、clistview を更新して最後のページを選択する必要があります。任意のアイデア、どうすればこれを行うことができますか?

4

4 に答える 4

2

click回避策として、ページャーの「最後のページ」ボタンでイベントをトリガーできます。

$('#pagination li.last a').trigger('click');
于 2013-06-01T08:57:09.783 に答える
1

$.fn.yiiListView.update 関数にパラメーターを追加することで、私にとってうまくいく解決策を見つけました

JS 部分:

 $.fn.yiiListView.update('switchlist-designer-clistview',{
                  data: $(this).serialize()+"&gotoLastPage=true",
                  complete:function(){
                    //Ajax loading is finished           
                  });

コントローラーの PHP 部分

if(Yii::app()->getRequest()->getParam("gotoLastPage")=="true"){
      //Important to unset the gotoLastPage Parameter otherwise the pagination wont work
       unset($_GET["gotoLastPage"]);

      //Get the last page 
      $lastPage = ceil($activeDataProvider->getTotalItemCount()/$activeDataProvider->getPagination()->pageSize);

      //Set the lastpage
      $paginator->currentPage=$lastPage;
      $activeDataProvider->setPagination($paginator);
  }
于 2014-09-26T07:54:36.217 に答える