2012-04-23 63 views
0

我有另一個cgridview裏面一個cgridview: 外一個是:Yii的cgridview ajaxUpdate財產

$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/adminu/user_id/1/Vac_page/2?ajax = users-grid
注意users-grid是外部cgridview的id。 然後我點擊「下一步」後,內部和外部的cgridviews都消失了。

我嘗試使用ajaxUpdate property,但它不影響任何內容。 謝謝。

+0

一切看起來正確的。你有任何JavaScript錯誤?你有活的網站,我們可以檢查它嗎? – 2012-04-24 15:06:55

+0

你在哪裏點擊「下一步」?那個按鈕從哪裏來的? – 2012-04-24 15:34:59

+0

@mashingan不,我很抱歉沒有現場現場。 – 2012-04-24 17:16:55

回答

3

這是一個類似的問題,我有一個。排序和分頁URL由dataProvider設置,而搜索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' 
       ), 
    ), 
)); 

而且我類似的問題...

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