在ExtJs4.2表單控件里有個時間控件,但是官方提供的控件不能將日期和時分秒整合到一起,我從網(wǎng)上搜集整理了幾個可用的控件。先來看下4.2自帶的是什么效果:


上面的控件一點(diǎn)都不方便,而且選擇的時候還不能精確到秒,以下是代碼:
<%@ 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:'空', //沒有輸入任何內(nèi)容提示文字
maxLength:50, //輸入大字符串長度
minLength:10 //輸入最小字符串長度
});
var fieldTextArea = new Ext.form.TextArea({
width:200,
grow:true, //會根據(jù)輸入內(nèi)容自動修改自身高度
preventScrollbars:true, //防止出現(xiàn)滾動條,如果內(nèi)容超出顯示范圍就會自動隱藏
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學(xué)習(xí)之路</h2>
<hr />
作者:束洋洋
開始日期:2013年12月11日21:13:50
<h3>深入淺出ExtJS之文本輸入控件Ext.form.TextField</h3>
<div id="form"></div>
</body>
</html>這里介紹下increment屬性,這個屬性是控制時間顆粒度的,默認(rèn)為15,我這里改為了1,也就是可以選擇1分鐘,但是秒還是選擇不了。在ExtJs3.2中,網(wǎng)上有些人才寫了些擴(kuò)展控件,我發(fā)現(xiàn)非常好,但是非常遺憾,4.2用不了,3.X和4.x區(qū)別還是挺大的,具體的區(qū)別大家可以上網(wǎng)搜下看看。這里我把3.2的例子也提供給大家,點(diǎn)此下載

好了,現(xiàn)在再看下苦逼的4.2,第一種,下載地址在這里【點(diǎn)擊這里】

第二種,下載地址在這里【點(diǎn)擊下載】

這種調(diào)用方式,這里給大家發(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: '結(jié)束時間',
format: 'Y-m-d H:i:s ',
name:'etime'
}],
renderTo: 'form'
});
});
</script>
</head>
<body>
<h2>我的ExtJS4.2學(xué)習(xí)之路</h2>
<hr />
作者:束洋洋
開始日期:2013年12月11日21:13:50
<h3>深入淺出ExtJS之文本輸入控件Ext.form.TextField</h3>
<div id="form"></div>
</body>
</html>雖然解決了日期和時分秒的問題,但是體驗(yàn)還是有點(diǎn)差,囧。。。(4.2的控件必須先選擇時分秒,再選擇日期才可以,網(wǎng)上搜索了許多,希望可以有個帶確定按鈕的,但是都以失敗告終,有些不符合,有些不能用,你如果找到了,請告訴我哈~)
連載中,請大家繼續(xù)關(guān)注!本文出自我的個人網(wǎng)站思考者日記網(wǎng)
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
當(dāng)前題目:ExtJS4.2學(xué)習(xí)(18)時間控件-創(chuàng)新互聯(lián)
文章分享:http://www.chinadenli.net/article42/jiiec.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站、網(wǎng)站維護(hù)、品牌網(wǎng)站制作、企業(yè)建站、App設(shè)計(jì)、網(wǎng)站營銷
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容