在ExtJs4.2表單控件里有個時間控件,但是官方提供的控件不能將日期和時分秒整合到一起,我從網上搜集整理了幾個可用的控件。先來看下4.2自帶的是什么效果:
上面的控件一點都不方便,而且選擇的時候還不能精確到秒,以下是代碼:
<%@ 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, //會根據(jù)輸入內容自動修改自身高度 preventScrollbars:true, //防止出現(xiàn)滾動條,如果內容超出顯示范圍就會自動隱藏 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> <h2>我的ExtJS4.2學習之路</h2> <hr /> 作者:束洋洋 開始日期:2013年12月11日21:13:50 <h3>深入淺出ExtJS之文本輸入控件Ext.form.TextField</h3> <div id="form"></div> </body> </html>
這里介紹下increment屬性,這個屬性是控制時間顆粒度的,默認為15,我這里改為了1,也就是可以選擇1分鐘,但是秒還是選擇不了。在ExtJs3.2中,網上有些人才寫了些擴展控件,我發(fā)現(xiàn)非常好,但是非常遺憾,4.2用不了,3.X和4.x區(qū)別還是挺大的,具體的區(qū)別大家可以上網搜下看看。這里我把3.2的例子也提供給大家,點此下載
好了,現(xiàn)在再看下苦逼的4.2,第一種,下載地址在這里【點擊這里】
第二種,下載地址在這里【點擊下載】
這種調用方式,這里給大家發(fā)一下:
<%@ 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> <h2>我的ExtJS4.2學習之路</h2> <hr /> 作者:束洋洋 開始日期:2013年12月11日21:13:50 <h3>深入淺出ExtJS之文本輸入控件Ext.form.TextField</h3> <div id="form"></div> </body> </html>
雖然解決了日期和時分秒的問題,但是體驗還是有點差,囧。。。(4.2的控件必須先選擇時分秒,再選擇日期才可以,網上搜索了許多,希望可以有個帶確定按鈕的,但是都以失敗告終,有些不符合,有些不能用,你如果找到了,請告訴我哈~)
連載中,請大家繼續(xù)關注!本文出自我的個人網站思考者日記網
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
當前題目:ExtJS4.2學習(18)時間控件-創(chuàng)新互聯(lián)
文章分享:http://jinyejixie.com/article42/jiiec.html
成都網站建設公司_創(chuàng)新互聯(lián),為您提供自適應網站、網站維護、品牌網站制作、企業(yè)建站、App設計、網站營銷
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)