Yii Sort By Clistview不工作

时间:2014-10-22 05:23:11

标签: php yii

我正在使用 Yii 1.1.15 。我到我的CListView在页面加载时正确填充表格。但是当我尝试按store name排序表时,ajax响应是整个页面的html。这张桌子是空的。

但是当我刷新页面&sort=store&sort=store.desc时,页面工作正常并且也正确排序。我有什么想法我做错了吗?

在我的控制器中

    $dataProvider=new CActiveDataProvider('Store', 
                    array(
                        'criteria' => array(
                            'condition'=>$_search_conditions, 
                            'params'=>$search_params,
                        ),
                        'sort'=>array(
                               'defaultOrder'=>'store DESC',
                                'attributes'=>array(
                                    'store'=>array(
                                        'asc'=>'store',
                                        'desc'=>'store DESC',
                                    ),
                                  '*',
                                )
                        ),
                    )
                );

$model = new Store;
$model->unsetAttributes();  // clear any default values

        //render page
        $this->render('index',array(
                'dataProvider'=>$dataProvider,
                'model'=>$model
        ));

在我的视图中

$this->widget('zii.widgets.CListView', array(
                        'id' => 'store-list',
                        'dataProvider'=>$dataProvider,
                        'itemView'=>'_view',
                        'enableHistory'=> true,
                        'pagerCssClass' => 'pagination',
                        'ajaxUpdate'=>'store-list',
                        'loadingCssClass' => '', //remove loading icon
                        'sortableAttributes'=>array(
                            'store',
                            //'state' => 'State',
                            //'distance' => 'Distance'
                        ),
                        'emptyText' => '<div class="alert alert-info">No data found</div>',
                        'template'=>'
                                    <div class="row">
                                        <div class="col-md-12">     
                                            <div class="pull-left visible-lg visible-md visible-sm">{summary}</div>                     
                                            <div class="pull-right">{sorter}</div>
                                        </div>
                                    </div>
                                    <div class="row">
                                        <div class="col-md-12">{items}</div>
                                    </div>
                                    <div class="row">
                                        <div class="col-md-12">
                                            {pager}
                                        </div>
                                    </div>',
                        'pager' => array('id'=>'_pagination',
                                         'class' => 'LinkPager',
                                         'header' => '', //remove pagination header
                                         'htmlOptions'=>array('class'=>'pagination') //add bootstrap pagination class
                                        ),
                    ));

也在我的function parseUrl()我有这个代码,它确实回显了$_GET['Store_sort']的正确值,下面的代码在我的自定义网址管理器类中使用

if (!empty($_GET['sort']))
{
    echo $_GET['Store_sort'] = $_GET['sort'];
}

更新:即使禁用友好网址,也不会排序。这是ajax帖子的URL。分页也不起作用

http://localhost/dev/frontend/www/store/store/index/?Store_sort=store.desc&ajax=store-list

0 个答案:

没有答案