ext4 datefield点击年月弹出层同时设置datefield内容

  ext4或者ext5的datefield对象,在日期选择器中,如何在点击年月弹出层中的月份或者年份时,可以同时设置datefield对象的值,而不需要点击年份或者月份确定后返回日期选择器,再次点击日期才能设置datefield的值。

  本示例居于ext4.1.1a,如果其他版本ext自己找相关版本的API来查看,效果如下

ext4 datefield点击年月弹出层同时设置datefield内容

  ext4 datefield点击年月弹出层同时设置datefield源代码如下

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>ext4/ext5 datefield点击年月弹出层同时设置datefield内容</title>
<link rel="stylesheet" type="text/css" href="../../resources/css/ext-all.css" />
<script type="text/javascript" src="../../ext-all-debug.js"></script>
<script type="text/javascript">
    Ext.onReady(function () {
        Ext.create('Ext.form.Panel', {
            renderTo: Ext.getBody(),
            width: 300,
            bodyPadding: 10,
            title: 'ext4/ext5 datefield点击年月弹出层同时设置datefield内容',
            items: [{
                xtype: 'datefield',
                fieldLabel: '日期',
                listeners: { render: function () {
                    picker = this.getPicker(), me = this;
                    picker.show();//Ext5需要显示picker,要不下面显示年月选择出错,ext5应该是启用了lazyrender,点击日期时才创建对象
///////////////////////////////////////////////////////////////////
//需要调用此方法显示年月选择器,要不年月选择器不会生成,导致无法获取年月选择器对象,既下面picker.monthPicker对象,用来添加事件的
//而且要取到动画效果,传递false参数,要不ext5的hideMonthPicker无效,会显示出年月限制器
                    picker.showMonthPicker(false);
                    picker.hideMonthPicker(false);
                    function YearMonthClick() {
                        var date = picker.getValue().getDate(), //获取日期选择器的日,以便和选择的年和月重新生成日期对象
                            value = this.getValue(); //获取年月选择器的年份和月份,返回值为[月,年],注意月份是从0开始计算的,0对应1月份,11对应12月份
                        me.setValue(new Date(value[1], value[0], date));
                        //picker.hide(); //隐藏日期对象,如果不想隐藏去掉这句或者注释掉
                    }
                    picker.monthPicker.addListener({ monthclick: YearMonthClick, yearclick: YearMonthClick, okclick: YearMonthClick });//添加年月点击事件和ok点击按钮事件
///////////////////////////////////////////////////////////////////
                    //如果要禁用年月选择器,可以取消下面注释语句,注意和上面的代码是互斥的                    
                    //picker.monthBtn.clearListeners();
                    picker.hide();//fixed ext5,隐藏日期选择器
                }
                }
            }]
        });
    });
</script>
</head>
<body>
</body>
</html> 

  由于我这里下载的ext5是试用版本,可能有些功能受到限制,就如datefield这个控件,打开datepicker后,点击年月选择器后会直接隐藏日期选择器,而不是返回日期选择器,导致无法选择日期。所以具体ext5下上面的示例效果如何我就不清楚了。

加支付宝好友偷能量挖...


原创文章,转载请注明出处:ext4 datefield点击年月弹出层同时设置datefield内容

评论(0)Web开发网
阅读(489)喜欢(0)extjs开发技巧