我还有一个cgridview里面一个cgridview:外一个是:
$this->widget('application.modules.user.components.CsvGridView', array(
'dataProvider'=>$model->mySearch(),
'filter' => $model,
'id'=>'users-grid',
...
内层一个是:
$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'
),
),
));
问题是,内一个不更新正确(与阿贾克斯当然更新)。
当我点击 “下一个”,例如,在内部cgridview,所请求的URL是:请求URL:http://本地主机/ ORM /真空/真空/ adminu / USER_ID / 1 / Vac_page / 2 AJAX =用户栅
请注意,用户网是外cgridview的ID。 再经过我点击“下一步”内和外cgridviews都消失了。
我尝试使用ajaxUpdate属性 ,但它不会影响任何东西。 谢谢。
这是一个我有一个类似的问题。 排序和分页的URL是由数据提供程序,而搜索URL被ajaxUrl做设定。 你必须将所有3使用CGridView断章取义。
数据提供程序单独设置:
$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'
),
),
));
也是我类似的问题?
如何使用CGridView的Yii中ajaxUrl参数?
嵌套当他们CGridView的两个非常重要的配置选项是updateSelector
和filterSelector
! 在默认情况下,这些选择针对所有可用的分页/排序一个GridView中的链接。 所以点击一个嵌套的gridview的排序链接还导致所有父GridView的更新。 所以,你必须调整这些选择,如果这是一个问题(很可能如此),只选择gridview的直接后代,而不包括那些孩子的GridView的。 反之则不是一个问题,如果孩子的GridView有另一个ID。
所以你父母的GridView(大多需要)这样的选择(请注意使用“大于”符号的):
$this->widget('CGridView',array(
...
'updateSelector' => '#PARENTGRIDVIEW > .items.table > thead tr th a.sort-link, #PARENTGRIDVIEW > .pagination a',
'filterSelector' => '#PARENTGRIDVIEW .filters input, #PatientSaleMedicalsIndex .filters select',
现在孩子的GridView可以更新独立于母公司。 注意:孩子的GridView的ID在Ajax请求重新出现,否则它的内容将不会被放置在页面/ gridview的发射请求中!