2014-07-16 3 views
1

내 사이트의 색인 페이지에 CGridView가있는 div- 블록이 떠있었습니다.Yii CGridView가 AJAX 대신 새 페이지를 렌더링합니다.

정렬, 필터, 페이징 등의 옵션을 사용해야하지만 div 만 업데이트하면 전체 페이지가 새로 고쳐지지 않습니다.

데이터 렌더링은 그리드 내용 만 업데이트해야합니다. 모든 <a>의 href가있어 사용자를 지정된보기로 보냅니다. 여기

는 그리드 뷰 : 그것은이 views.users.users.php에서라고

$this->widget('zii.widgets.grid.CGridView', array(
    'dataProvider' => $model->search(), 
    'filter' => $model, 
    'ajaxUrl' => 'modules/subcntrl/usersGrid', 
    'ajaxUpdate' => 'users-grid', 
    'columns' => array(
     array(
      'name' => 'name', 
      'type' => 'raw', 
      'value' => 'CHtml::encode($data->name)' 
     ), 
     array(
      'class'=>'CButtonColumn', 
     ), 
    ), 
)); 

(내 views.users.usersGrid.php의 전용 콘텐츠입니다) : <?php $this->actionUsersGrid(); ?>

컨트롤러 :

public function actionUsers() { 
    $this->renderPartial('users'); 
} 

public function actionUsersGrid() { 
    if(!Yii::app()->request->isAjaxRequest) die('Url should be requested via ajax only'); 
    $model = new Users(); 
    $this->renderPartial('usersGrid',array(
     'model' => $model, 
    )); 
} 

+0

당신은 "그것은 views.users.users.php에서라고 : actionUsersGrid();>?"무엇을 의미합니까 그래서 당신을 확실히 도움이 될 수 없습니다 ... – webeno

+0

Ajax 요청 자체를 가지고 있지만, 그것은' actionUsersGrid();를 호출하는 대신 나에게 보인다. ?>'users.php'에'renderPartial ('usersGrid'... ')를 넣고'ajaxUrl'과 완전히 다른 이름을 지정해야합니다. 예를 들어'ajaxCall'과 같이 컨트롤러에서 제거하면됩니다. 'actionUsersGrid'라는 이름으로'actionAjaxCall' (물론'ajaxUrl'의 이름에 따라 다름)을 설정하고 거기에 아약스 액션을 설정하십시오. – webeno

+0

그게 gridview가 놓이는 users.php의 줄입니다. :'some_text

actionUsersGrid(); ?>
' –

답변

0

THIR을 사용하시기 바랍니다 어떤 도움을 주셔서 감사합니다겠습니까 이 네번째 파라미터 문제를합니다 (processOutput=true 설정) 해결할

$this->renderPartial('users',array(),false,true); 

이런 renderPartial 방법의 개발 및 사등 파라미터

+0

나는 부모보기에서 그것을 사용하고 있는데, 나는 여기에서도 그것을 시도했지만 아무런 효과가 없다. 질문에 대한 내 마지막 코멘트를 한번보세요 :) –

0

이런 renderPartial 방법에서 세 번째 사등 매개 변수를 사용하여주십시오

$this->renderPartial('users',array(),false,true); 

는 네 번째 매개 변수에합니다 (processOutput=true 설정) 문제를 해결할 수

이 코드에서 작동하지 않습니다. 나는 엄마 CONTROLER에서 다음과 같이 사용하고

$this->renderPartial('_searchQuote', array('model' => $model, 'month' => $month, 'user' => $user), false, $processOutput=false);  
관련 문제