![](/img/trans.png)
[英]yii cgridview Property “CActiveDataProvider.abc” is not defined
[英]Yii cgridview ajaxUpdate property
我在另一個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'
),
),
));
問題是內部的內核不能正確更新(當然要用ajax更新)。
例如,當我在內部cgridview中單擊“下一個”時,請求的URL是:請求URL:http:// localhost / orm / vac / vac / admin / user_id / 1 / Vac_page / 2?ajax = users-grid
注意,users-grid是外部cgridview的ID。 然后單擊“下一步”后,內部和外部cgridviews都消失了。
我嘗試使用ajaxUpdate屬性,但它不會影響任何內容。 謝謝。
這與我遇到的問題類似。 排序和分頁網址由dataProvider設置,而搜索網址由ajaxUrl設置。 您必須將所有3設置為在上下文之外使用CGridView。
dataprovider單獨設置:
$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的兩個非常重要的配置選項是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更新。 注意:必須在ajax請求中重新出現子級的gridview ID,否則它的內容將不會放在觸發請求的頁面/ gridview中!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.