6

CGridView の ajaxUrl パラメータを使用しようとしていますが、効果がありません。

$this->widget('zii.widgets.grid.CGridView', array(
   'id'=>'ge-cg-'.$myLib['id'],
   'filter'=>$geCGModel,
   'dataProvider'=>$dataProvider, 
   'columns'=>$columns,
   'ajaxUrl'=>Yii::app()->createUrl( 'Something/search' ),
));

これは、CGridView ウィジェットの ajax URL をオーバーライドしていないようです。グリッドの ajax リクエストは、それをレンダリングしたコントローラーに送信されます (グリッド自体のコントローラーとは異なります)。

ありがとう!

4

1 に答える 1

11

このajaxUrlプロパティは、「列ごとのフィルター」と「高度な検索」の両方の検索に対してのみ機能します。ソートリンクとページ付けリンクは、指定したから生成され$dataProviderます。CGridViewとCDataColumnのソースをチェックして、ページネーション並べ替えがそれぞれdataProviderからどのように抽出されるかを確認できます。

したがって、これらのリンクでも指定したいものと同じものを使用する場合は、CPaginationオブジェクトとのCSortオブジェクトの両方のプロパティをajaxUrl次のように設定する必要があります。route$dataProvider

$dataProvider=new CActiveDataProvider('Modelname',array(
    'criteria'=>$criteria,
    'pagination'=>array(
        'route'=>'something/search'
    ),
    'sort'=>array(
        'route'=>'something/search'
    )
));

これを現在のCGridView設定と組み合わせると、期待どおりに機能するはずです。

于 2012-09-28T10:50:49.157 に答える