1

我需要开发无限滚动机制 - 使用 ajax 从数据库(活动记录)中获取数据。现在在我的项目中,我在视图中使用 CPagination 类和 WidgetLinkPager 进行分页。在我的控制器/模型中:

 $count = $this->count($criteria);
 $pages = new CPagination($count);
 $pages->pageSize = $per_page;
 $pages->applyLimit($criteria);
 $cars = $this->findAll($criteria);
 return array(
            'cars'    => $cars,
            'pages'   => $pages,
            'count'   => $count,
 );

在我看来:

<? $this->widget('WidgetLinkPager', array(
        'pages'          => $pages,
        'perpageOptions' => $perpageOptions,
        'objectsCount'   => intval($searchResultCount),));
?>

我的问题是:如何使用 CPagination 类实现无限滚动和 ajax?我需要在服务器上呈现数据 - 因为它现在可以工作。而且我在 url 中有很多参数,我需要通过 ajax 来执行此操作。我需要通过 javascript 从 url 中获取它们并使用 ajax 传递。此参数需要形成搜索条件。我正在考虑使用 CListView 小部件 - 但它需要 DataProvider 对象。

提前致谢。对不起我的英语不好。

4

1 回答 1

3

有一个名为yiinfinite-scroll的扩展程序可以让你做到这一点!

这是那里页面的示例:

控制器:

class PostController extends Controller
{
    public function actionIndex()
    {
            $criteria = new CDbCriteria;
            $total = Post::model()->count();

            $pages = new CPagination($total);
            $pages->pageSize = 20;
            $pages->applyLimit($criteria);

            $posts = Post::model()->findAll($criteria);

        $this->render('index', array(
                'posts' => $posts,
                'pages' => $pages,
            ));
    }
}

和观点:

$this->widget('ext.yiinfinite-scroll.YiinfiniteScroller', array(
    'itemSelector' => 'div.post',
    'pages' => $pages,
));
于 2013-09-03T14:47:14.467 回答