ExtJS4.2學習(18)時間控件

在ExtJs4.2表單控件裏有個時間控件,可是官方提供的控件不能將日期和時分秒整合到一塊兒,我從網上搜集整理了幾個可用的控件。先來看下4.2自帶的是什麼效果:javascript

QQ截圖20131222175510.jpg

上面的控件一點都不方便,並且選擇的時候還不能精確到秒,如下是代碼:css

<%@ 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>

這裏介紹下increment屬性,這個屬性是控制時間顆粒度的,默認爲15,我這裏改成了1,也就是能夠選擇1分鐘,可是秒仍是選擇不了。在ExtJs3.2中,網上有些人才寫了些擴展控件,我發現很是好,可是很是遺憾,4.2用不了,3.X和4.x區別仍是挺大的,具體的區別你們能夠上網搜下看看。這裏我把3.2的例子也提供給你們,點此下載
html

QQ截圖20131222175942.jpg

好了,如今再看下苦逼的4.2,第一種,下載地址在這裏【點擊這裏java


QQ截圖20131222180201.jpg

第二種,下載地址在這裏【點擊下載ide

QQ截圖20131222180622.jpg

這種調用方式,這裏給你們發一下:學習

<%@ 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.Loader.setPath('MyApp', '../houtai/js'); 
    Ext.define('MyApp.ux.DateTimeField', { 
          extend: 'Ext.form.field.Date', 
          alias: 'widget.datetimefield', 
          requires: ['MyApp.ux.DateTimePicker'], 
          initComponent: function() { 
              thisthis.format = this.format; 
              this.callParent(); 
          }, 
          // overwrite 
          createPicker: function() { 
              var me = this, 
                  format = Ext.String.format; 
              return Ext.create('MyApp.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>

雖然解決了日期和時分秒的問題,可是體驗仍是有點差,囧。。。(4.2的控件必須先選擇時分秒,再選擇日期才能夠,網上搜索了許多,但願能夠有個帶肯定按鈕的,可是都以失敗了結,有些不符合,有些不能用,你若是找到了,請告訴我哈~)網站

連載中,請你們繼續關注!本文出自個人我的網站思考者日記網ui

相關文章
相關標籤/搜索