首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Yii cgridview ajaxUpdate属性

Yii cgridview ajaxUpdate属性
EN

Stack Overflow用户
提问于 2012-04-24 00:03:24
回答 2查看 6.7K关注 0票数 0

我在另一个cgridview中有一个cgridview:外部的是:

代码语言:javascript
复制
$this->widget('application.modules.user.components.CsvGridView', array(
    'dataProvider'=>$model->mySearch(),
    'filter' => $model,
    'id'=>'users-grid',
...

内部的是:

代码语言:javascript
复制
$this->widget('zii.widgets.grid.CGridView', array(
    'id'=>'vacr-grid',

    'dataProvider'=>$model->searchu(),
   // 'pager'=>false,
   // 'enableSorting'=>false,
    'summaryText'=>'',
    'ajaxUpdate'=>'vacr-grid',

    'columns'=>array(

        'start',
        'end',
                array(
                        'name' => 'vac_type',
                        'value' =>
                        'isset($data->vacType->name)?$data->vacType->name:$data->vac_type'
                ),
    ),
));

问题是内部的更新不正确(当然是使用ajax更新)。

例如,当我单击内部cgridview中的"next“时,请求的URL是: Request URL:http://localhost/orm/vac/vac/adminu/user_id/1/Vac_page/2?ajax=users-grid

注意,users-grid是外部cgridview的id。然后在我点击“下一步”后,内部和外部的cgridview都消失了。

我尝试使用ajaxUpdate property,但它不会影响任何东西。谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-10-02 02:32:45

这是一个类似于我遇到的问题。排序和分页url由dataProvider设置,而搜索url由ajaxUrl设置。您必须将所有3项都设置为脱离上下文使用CGridView。

单独设置数据提供程序:

代码语言:javascript
复制
$dataProvider=new CActiveDataProvider('Modelname',array(
    'criteria'=>$criteria,
    'pagination'=>array(
        'route'=>'something/search'
    ),
    'sort'=>array(
        'route'=>'something/search'
    )
));




$this->widget('zii.widgets.grid.CGridView', array(
    'id'=>'vacr-grid',    
    'dataProvider'=>$dataProvider,
    'summaryText'=>'',
    'ajaxUpdate'=>'vacr-grid', // not necessary if same as id
    'ajaxUrl'=>Yii::app()->createUrl( 'Something/search' ),  // this takes care of the search  
    'columns'=>array(    
        'start',
        'end',
                array(
                        'name' => 'vac_type',
                        'value' =>
                        'isset($data->vacType->name)?$data->vacType->name:$data->vac_type'
                ),
    ),
));

还有我类似的问题...

How do I use the ajaxUrl parameter of CGridView in Yii?

票数 3
EN

Stack Overflow用户

发布于 2019-07-10 22:07:38

嵌套时,CGridView的两个非常重要的配置选项是updateSelectorfilterSelector!默认情况下,这些选择器针对GridView中所有可用的分页/排序链接。因此,单击嵌套网格视图中的排序链接也会导致所有父GridViews更新。因此,如果只选择网格视图的直接后代而不是子网格视图的直接后代有问题(可能是),那么您必须调整这些选择器。如果子网格视图有另一个ID,反之亦然。

因此,您是父GridView (大多数情况下需要)这样的选择器(注意‘大于’符号的使用):

代码语言:javascript
复制
$this->widget('CGridView',array(
    ...
    'updateSelector' => '#PARENTGRIDVIEW > .items.table > thead tr th a.sort-link, #PARENTGRIDVIEW > .pagination a',
    'filterSelector' => '#PARENTGRIDVIEW .filters input, #PatientSaleMedicalsIndex .filters select',

现在,子网格视图可以独立于父网格视图进行更新。注意:该子对象的网格视图id必须重新出现在ajax请求中,否则它的内容将不会被放在触发请求的页面/网格视图中!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10284068

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档