ExtJS4.2学习(18)时间控件



在ExtJs4.2表单控件里有个时间控件,但是官方提供的控件不能将日期和时分秒整合到一起,我从网上搜集整理了几个可用的控件。tnf思考者日记网-束洋洋个人博客

先来看下4.2自带的是什么效果:tnf思考者日记网-束洋洋个人博客

QQ截图20131222175510.jpgtnf思考者日记网-束洋洋个人博客

上面的控件一点都不方便,而且选择的时候还不能精确到秒,以下是代码:tnf思考者日记网-束洋洋个人博客

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>  
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
<html>  
<head>  
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
<title>Hello Extjs4.2</title>  
<link href="../../ExtJS4.2/resources/ext-theme-neptune/ext-theme-neptune-all.css" rel="stylesheet">  
<script src="../../ExtJS4.2/ext-all.js"></script>  
<script src="../../ExtJS4.2/locale/ext-lang-zh_CN.js"></script>  
<script type="text/javascript">  
Ext.onReady(function(){  
  
    var field = new Ext.form.TextField({  
        fieldLabel: 'empty', //输入控件前显示名称  
        allowBlank: false, //是否允许为空  
        emptyText:'空', //没有输入任何内容提示文字  
        maxLength:50, //输入最大字符串长度  
        minLength:10 //输入最小字符串长度  
    });  
      
    var fieldTextArea = new Ext.form.TextArea({  
        width:200,  
        grow:true, //会根据输入内容自动修改自身高度  
        preventScrollbars:true, //防止出现滚动条,如果内容超出显示范围就会自动隐藏  
        fieldLabel:'empty',  
        allowBlank:false,  
        emptyText:'空',  
        maxLength:50,  
        minLength:10  
    });  
      
    var fieldDate = new Ext.form.DateField({  
        fieldLabel:'日期',  
        emptyText:'请选择',  
        format:'Y-m-d',  
        disabledDays:[0,6] //禁止选择的日期  
    });   
      
    var timeDate = new Ext.form.TimeField({  
        fieldLabel:'时间',  
        emptyText:'请选择',  
        format:'H:i:s',  
        increment:1 //时间颗粒度  
    });   
  
    var form = new Ext.form.FormPanel({  
        title: '表单输入控件演示',  
        width:500,  
        frame: true,  
        items: [field,fieldTextArea,fieldDate,timeDate],  
        renderTo: 'form'  
    });  
});  
</script>  
</head>  
<body>  
<h1>我的ExtJS4.2学习之路</h1>  
<hr />  
作者:束洋洋  
开始日期:2013年12月11日21:13:50  
<h2>深入浅出ExtJS之文本输入控件Ext.form.TextField</h2>  
<div id="form"></div>  
</body>  
</html>

 tnf思考者日记网-束洋洋个人博客

这里介绍下increment属性,这个属性是控制时间颗粒度的,默认为15,我这里改为了1,也就是可以选择1分钟,但是秒还是选择不了。tnf思考者日记网-束洋洋个人博客

在ExtJs3.2中,网上有些人才写了些扩展控件,我发现非常好,但是非常遗憾,4.2用不了,3.X和4.x区别还是挺大的,具体的区别大家可以上网搜下看看。tnf思考者日记网-束洋洋个人博客

这里我把3.2的例子也提供给大家,点此下载tnf思考者日记网-束洋洋个人博客

QQ截图20131222175942.jpgtnf思考者日记网-束洋洋个人博客

好了,现在再看下苦逼的4.2,第一种,下载地址在这里【点击这里tnf思考者日记网-束洋洋个人博客

QQ截图20131222180201.jpgtnf思考者日记网-束洋洋个人博客

第二种,下载地址在这里【点击下载tnf思考者日记网-束洋洋个人博客

QQ截图20131222180622.jpgtnf思考者日记网-束洋洋个人博客

这种调用方式,这里给大家发一下:tnf思考者日记网-束洋洋个人博客

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>  
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
<html>  
<head>  
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
<title>Hello Extjs4.2</title>  
<link href="../../ExtJS4.2/resources/ext-theme-neptune/ext-theme-neptune-all.css" rel="stylesheet">  
<script src="../../ExtJS4.2/ext-all.js"></script>  
<script src="../../ExtJS4.2/locale/ext-lang-zh_CN.js"></script>  
  
<script type="text/javascript" src="../../myplugin/dateTimeFileld/ux/UX_TimePickerField.js"></script>  
<script type="text/javascript" src="../../myplugin/dateTimeFileld/ux/UX_DateTimePicker.js"></script>  
<script type="text/javascript" src="../../myplugin/dateTimeFileld/ux/UX_DateTimeMenu.js"></script>  
<script type="text/javascript" src="../../myplugin/dateTimeFileld/ux/UX_DateTimeField.js"></script>  
<script type="text/javascript">  
Ext.onReady(function(){  
    Ext.Loader.setConfig({enabled:true});  
    Ext.define('', {  
          extend: 'Ext.form.field.Date',  
          alias: 'widget.datetimefield',  
          requires: ['Ext.ux.DateTimePicker'],  
          initComponent: function() {  
              this.callParent();  
          },  
          // overwrite  
          createPicker: function() {  
              var me = this,  
                  format = Ext.String.format;  
              return Ext.create('Ext.ux.DateTimePicker', {  
                    ownerCt: me.ownerCt,  
                    renderTo: document.body,  
                    floating: true,  
                    hidden: true,  
                    focusOnShow: true,  
                    minDate: me.minValue,  
                    maxDate: me.maxValue,  
                    disabledDatesRE: me.disabledDatesRE,  
                    disabledDatesText: me.disabledDatesText,  
                    disabledDays: me.disabledDays,  
                    disabledDaysText: me.disabledDaysText,  
                    format: me.format,  
                    showToday: me.showToday,  
                    startDay: me.startDay,  
                    minText: format(me.minText, me.formatDate(me.minValue)),  
                    maxText: format(me.maxText, me.formatDate(me.maxValue)),  
                    listeners: {  
                        scope: me,  
                        select: me.onSelect  
                    },  
                    keyNavConfig: {  
                        esc: function() {  
                            me.collapse();  
                        }  
                    }  
                });  
          }  
      });  
    var form = new Ext.form.FormPanel({  
        title: '表单输入控件演示',  
        width:500,  
        frame: true,  
        items: [{  
            xtype:'datetimefield',  
            width : 300,  
            labelWidth : 80,  
            endDateField:'etime',  
            vtype:'daterange',  
            fieldLabel: '开始时间',  
            format: 'Y-m-d H:i:s ',  
            name:'stime'  
        },  
        {  
            xtype:'datetimefield',  
            width : 300,  
            labelWidth : 80,  
            startDateField:'stime',  
            vtype:'daterange',  
            fieldLabel: '结束时间',  
            format: 'Y-m-d H:i:s ',  
            name:'etime'  
        }],  
        renderTo: 'form'  
    });  
});  
</script>  
</head>  
<body>  
<h1>我的ExtJS4.2学习之路</h1>  
<hr />  
作者:束洋洋  
开始日期:2013年12月11日21:13:50  
<h2>深入浅出ExtJS之文本输入控件Ext.form.TextField</h2>  
<div id="form"></div>  
</body>  
</html>

 tnf思考者日记网-束洋洋个人博客

虽然解决了日期和时分秒的问题,但是体验还是有点差,囧。。。(4.2的控件必须先选择时分秒,再选择日期才可以,网上搜索了许多,希望可以有个带确定按钮的,但是都以失败告终,有些不符合,有些不能用,你如果找到了,请告诉我哈~)tnf思考者日记网-束洋洋个人博客

 ===================================================tnf思考者日记网-束洋洋个人博客

PS:修复了选中会出现2个时间的情况,代码在文章中已修改tnf思考者日记网-束洋洋个人博客

QQ截图20141103225123.jpgtnf思考者日记网-束洋洋个人博客

励志成为网上最靠谱的Extjs4.2教程而努力!tnf思考者日记网-束洋洋个人博客

--2014年11月3日 22:46:12tnf思考者日记网-束洋洋个人博客

 tnf思考者日记网-束洋洋个人博客

ExtJS4.2全部章节汇总目录


 tnf思考者日记网-束洋洋个人博客

ExtJS4.2学习(一)Ext自定义类tnf思考者日记网-束洋洋个人博客

ExtJS4.2学习(二)Ext统一组件模型tnf思考者日记网-束洋洋个人博客

ExtJS4.2学习(三)Grid表格tnf思考者日记网-束洋洋个人博客

ExtJS4.2学习(四)Grid表格中文排序问题tnf思考者日记网-束洋洋个人博客

ExtJS4.2学习(五)表格渲染与复选框tnf思考者日记网-束洋洋个人博客

ExtJS4.2学习(六)表格分页与通过后台脚本获得分页数据tnf思考者日记网-束洋洋个人博客

ExtJS4.2学习(七)EditorGrid可编辑表格tnf思考者日记网-束洋洋个人博客

ExtJS4.2学习(八)表格限制输入数据的类型tnf思考者日记网-束洋洋个人博客

ExtJS4.2学习(九)属性表格控件PropertyGridtnf思考者日记网-束洋洋个人博客

ExtJS4.2学习(10)分组表格控件--GroupingGridtnf思考者日记网-束洋洋个人博客

ExtJS4.2学习(11)可拖放的表格tnf思考者日记网-束洋洋个人博客

ExtJS4.2学习(12)基于表格的右键菜单tnf思考者日记网-束洋洋个人博客

ExtJS4.2学习(13)基于表格的扩展插件---rowEditingtnf思考者日记网-束洋洋个人博客

ExtJS4.2学习(14)基于表格的扩展插件(2)tnf思考者日记网-束洋洋个人博客

ExtJS4.2学习(15)树形表格tnf思考者日记网-束洋洋个人博客

 ExtJS4.2学习(16)制作表单tnf思考者日记网-束洋洋个人博客

ExtJS4.2学习(17)表单基本输入控件Ext.form.Fieldtnf思考者日记网-束洋洋个人博客

 ExtJS4.2学习(18)时间控件tnf思考者日记网-束洋洋个人博客

 ExtJS4.2学习(19)在线编辑器Ext.form.HtmlEditortnf思考者日记网-束洋洋个人博客

ExtJS4.2学习(20)动态数据表格之前几章总结篇1 tnf思考者日记网-束洋洋个人博客

 ExtJS4.2学习(21)动态菜单与表格数据展示操作总结篇2tnf思考者日记网-束洋洋个人博客

ExtJS4.2学习(22)登录界面tnf思考者日记网-束洋洋个人博客

ExtJS4.2学习(23)textFiled后追加按钮tnf思考者日记网-束洋洋个人博客

ExtJS4.2学习(24)TreeStore使用详解tnf思考者日记网-束洋洋个人博客

ExtJS4.2学习(25)终结篇,实战项目tnf思考者日记网-束洋洋个人博客

 

(转载本站文章请注明作者和出处 思考者日记网|束洋洋个人博客 ,请勿用于任何商业用途)

『访问 思考者日记网404页面 寻找遗失儿童』

告知
  •     本站90%以上文章均属原创,部分转载已加上原作者出处。 如需转载本站文章请您务必保留本站出处!
  •     打广告评论者请自重,请为广大网友提供一个健康干净的网络空间。
  • 感谢主机屋提供网站空间;
  • 感谢万网阿里云提供域名解析;
  • 感谢EmpireCMS提供CMS系统;
  • 感谢bootstrap展示本站前端页面;
  • 感谢Glyphicons Halflings提供字体;
  • 感谢大家一直以来对本站的喜爱,感谢大家!
近期文章 建议与反馈