我使用Sphinx
生成所需ID
的列表。在此ID
列表中,我使用filters
语言应用Sphinx
,然后使用Search
模型方法创建并返回新的CActiveDataProvider;
$dataProvider = new CActiveDataProvider('model', array(
'criteria' => $criteria,
'pagination' => array(
'pageSize' => $this->pageSize,
'currentPage' => $this->cp_page - 1,
),
));
在视图中,现在,我有:
<div class="search_result searchconright">
<?php
$custom_pager_left = '
<div class="pagetxt">
<ul class="searchPager">
<li><span>View</span></li>
<li class="page"><a href="" class="page_search_limit">All</a></li>
<li class="page"><a href="" class="page_search_limit page_search_limit_active">3</a></li>
<li class="page"><a href="" class="page_search_limit page_search_limit_active">5</a></li>
<li class="page"><a href="" class="page_search_limit page_search_limit_active">24</a></li>
<li class="page"><a href="" class="page_search_limit">48</a></li>
</ul>
</div>
';
$this->widget('zii.widgets.CListView', array(
'ajaxUrl' => Yii::app()->createAbsoluteUrl('/employer/search'),
'id'=>'listViewSearch',
'dataProvider' => $model->search(),
'template' => "{summary}\n{sorter}\n{items}\n<div style='float:left;width=700px;'>$custom_pager_left<div class='pagetxt'>{pager}</div></div>",
'itemView' => '_index_post',
'enablePagination' => true,
'pager' => array(
'cssFile' => Yii::app()->baseUrl . '/css/clistview.css',
'header' => false,
'firstPageLabel' => 'First',
'prevPageLabel' => 'Previous',
'nextPageLabel' => 'Next',
'lastPageLabel' => 'Last',
),
'summaryText' => '',
'sortableAttributes' => array(
),
));
?>
</div>
但这无法正常工作,因为如果我点击下一步,并且列表结束,不知何故,ajax代码不会重新初始化正在发送的网址,它会继续使用旧网址连接,直到网址获得结果为止应用程序崩溃了。
CListView不应验证收到的数据是否存在? Sphinx可以提供注册ID,不再存在或不活动;
发生了什么事,我该如何防止这种情况发生?
答案 0 :(得分:1)
我发现论坛主题包含ajaxUrl
属性和分页的一些问题。看起来ajaxUrl被分页忽略了。很奇怪,也许这就是问题所在。
以下是此主题:http://www.yiiframework.com/forum/index.php/topic/21886-problem-with-clistview-and-ajaxurl-property/
请注意,最后的帖子路由是在dataprovider而不是listview上设置的。内部列表视图或网格视图应将ajaxUrl传递给dataprovider。
以下是如何手动设置分页路线: http://www.yiiframework.com/doc/api/1.1/CPagination#route-detail
$dataprovider->pagination->route = 'site/index';
如果使用了某些参数,也会手动设置params以进行分页(包括$ _GET附带): http://www.yiiframework.com/doc/api/1.1/CPagination#params-detail
$dataprovider->pagination->params = array('search' => 'Search string');
我也不确定如何设置$custom_pager_left
链接href?