2012-11-18 5 views
2

문제점 : 필터링 후 날짜 필터가 작동하지 않습니다.yii : 필터링 후 날짜가있는 필터가 작동하지 않습니다.

나는 cgridview의 필터에 datepicker를 넣으려고했다. 성공했다. 하지만 필터링 후 datepicker가 작동하지 않을 때 모든 cgridview에는 동일한 문제가 있습니다. 이 문제를 어떻게 해결할 수 있습니까? 필터 이전

: before filter 필터 후 : after filter

이 cgridview

<?php $this->widget('zii.widgets.grid.CGridView', array(
      'id'=>'history-grid', 
      'dataProvider'=>$model->search($id), 
      'filter'=>$model, 
      'columns'=>array(
       array(
        'name'=>'user_id', 
        'value'=>'$data->profiles->firstname', 
       ), 
       'action', 
       array(
        'name'=>'status', 
        'value'=>'$data->status', 
        'filter' => $status_list, 
       ), 
       array(
        'name'=>'created_date', 
        'value'=>'date("d-M-Y h:m a",strtotime($data->created_date))', 
        'filter'=>$this->widget('zii.widgets.jui.CJuiDatePicker', array(
         'name'=>'History[created_date]',   
         'model'=>$model, 
         'value' =>date('d-M-Y', strtotime($model->created_date)) , 
         'i18nScriptFile' => 'jquery.ui.datepicker-eng.js', // (#2) 
         'htmlOptions' => array(
          'id' => 'History_created_date', 
          'size' => '10', 
         ), 
         'defaultOptions' => array( // (#3) 
          'showOn' => 'focus', 
          'dateFormat' => 'dd-M-yy', 
          'showOtherMonths' => true, 
          'selectOtherMonths' => true, 
          'changeMonth' => true, 
          'changeYear' => true, 
          'showButtonPanel' => true, 
          //'yearRange'=>'-1:+1', 
          'yearRange'=> '2012:+1', 
          'minDate'=>'js:new Date(' . date('2012,m-3,1') . ')', 
          //'defaultDate'=>'js:new Date(' . date('2012,m-11,1') . ')', 
         ) 
        ),true),  
       ), 
      ), 
     )); ?> 

답변

3

당신은 업데이트 cgridview 후 다시 초기화 날짜 선택기가 필요합니다. http://www.yiiframework.com/wiki/318/using-cjuidatepicker-for-cgridview-filter/

추가가 CGridView 초기화 옵션

'dataProvider'=>$model->search($id), 
'filter'=>$model, 
'afterAjaxUpdate' => 'reinstallDatePicker', // (#1) 

에 afterAjaxUpdate를 추가하고이 기능을 정의 :이 읽기

// (#5) 
Yii::app()->clientScript->registerScript('re-install-date-picker', " 
function reinstallDatePicker(id, data) { 
    $('#History_created_date').datepicker(); 
} 
"); 
관련 문제