首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >yii :过滤后,按日期过滤不起作用

yii :过滤后,按日期过滤不起作用
EN

Stack Overflow用户
提问于 2012-11-18 23:31:26
回答 1查看 3.3K关注 0票数 3

问题:过滤器上的日期选择器在过滤后不工作。

我尝试将日期选择器放入cgridview的过滤器中。这是成功的。但是当过滤后datepicker不工作时。所有的cgridview都有一个相同的问题。我该如何解决这个问题?

在筛选之前:

在过滤器之后:

此cgridview

代码语言:javascript
复制
<?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),    
                ),
            ),
        )); ?>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-18 23:45:39

cgridview更新后,需要重新初始化datepicker。请阅读:http://www.yiiframework.com/wiki/318/using-cjuidatepicker-for-cgridview-filter/

在CGridView初始化选项中添加Add afterAjaxUpdate

代码语言:javascript
复制
'dataProvider'=>$model->search($id),
'filter'=>$model,
'afterAjaxUpdate' => 'reinstallDatePicker', // (#1)

并定义此函数:

代码语言:javascript
复制
// (#5)
Yii::app()->clientScript->registerScript('re-install-date-picker', "
function reinstallDatePicker(id, data) {
    $('#History_created_date').datepicker();
}
");
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13441549

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档