问题:过滤后的过滤器上的日期选择器不起作用.
我试图将日期选择器放入cgridview过滤器中.这是成功的.但是当过滤后日期选择器不起作用时.所有的cgridview都有相同的问题.我怎么解决这个问题?
过滤前:
过滤后:
这个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),
),
),
)); ?>
解决方法:
更新了cgridview之后,您需要重新初始化datepicker.阅读:http://www.yiiframework.com/wiki/318/using-cjuidatepicker-for-cgridview-filter/
在CGridView初始化选项中添加添加afterAjaxUpdate
'dataProvider'=>$model->search($id),
'filter'=>$model,
'afterAjaxUpdate' => 'reinstallDatePicker', // (#1)
并定义此功能:
// (#5)
Yii::app()->clientScript->registerScript('re-install-date-picker', "
function reinstallDatePicker(id, data) {
$('#History_created_date').datepicker();
}
");
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。