2012-09-27 2 views
6

CGridView의 ajaxUrl param을 사용하려고하는데 아무런 효과가 없습니다.Yii에서 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 요청은 여전히 ​​렌더링 된 컨트롤러로 진행됩니다 (그리드의 컨트롤러와 다릅니다).

감사합니다.

답변

10

속성은 "열 필터 별"및 "고급 검색"모두 검색에만 적용됩니다. 정렬 링크 및 페이지 매김 링크는 지정한 $dataProvider에서 생성됩니다. CGridView 및 CDataColumn의 소스를 확인하여 각각 paginationsorting이 dataProvider에서 어떻게 추출되는지 확인할 수 있습니다.

은 따라서 당신은 당신이 약간이처럼 CPagination 객체 및 $dataProvider의 CSort 객체 모두에 대해 route 속성을 설정해야 해당 링크는 지정하려는 그 같은 ajaxUrl을 사용하려는 경우 :

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

현재 CGridView 설정과 결합하여 예상대로 작동해야합니다.

+0

나는 당신을 올바르게 얻었지만 당신의 URL을 다시 보았기를 희망한다. 그것은 당신이 검색을 ajaxurl (단지 페이지 매김과 정렬이 아닌)과 함께 사용하기를 원하는 것처럼 보인다. 검색은 답변에서 언급 한 내용을 변경하지 않고 작동해야하므로 검색이 작동하지 않으면 알려주십시오. –

+1

우수. 고맙습니다. 나는 올바른 URL에 모든 것을 기본값으로하는 보조 아약스 요청을 작성하여이 문제를 해결했지만 나중에는 유용 ​​할 것입니다. – glyph

+0

도움이 되니 다행이지만, 궁금 해서요, 당신의 수색은 그 ajaxUrl로 일하고 있었습니까? 그리드 뷰에 대한 전체 구성 (열 빼기)이 맞는지 말해 줄 수 없습니까? 또는 다른 속성도 정의 했습니까? 또한 yii 버전을 알려주십시오. –

관련 문제