- 浏览: 86397 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
beichen35:
您好,如何将request注入进去呢?
jcaptcha集群时验证码不能验证的问题 -
zhengzili813:
楼主可以共享下参考么,邮箱276032337@qq.com 谢 ...
flex表单设计器2 -
八岭书生:
你这个文件夹树形结构是怎么实现的啊 我想弄一个加载本地文件夹的 ...
show下我的网盘 类windows文件管理 -
heiheizi:
您好,您可以将您做的表单设计器发一个给我吗?heiheizi@ ...
SQL在线查询设计器2 -
heiheizi:
博主:你好! 对你的SQL在线查询设计器非常感兴趣, ...
SQL在线查询设计器2
Ext.ns('Ext.ux.form');
Ext.ux.form.TimePickerField=function(config) {
Ext.ux.form.TimePickerField.superclass.constructor.call(this, config);
}
Ext.extend(Ext.ux.form.TimePickerField, Ext.form.Field, {
defaultAutoCreate: {tag: 'div'},
cls: 'x-form-timepickerfield',
hoursSpinner: null,
minutesSpinner: null,
secondsSpinner: null,
spinnerCfg: {
width: 40
},
spinnerFixBoundries: function(value){
if(value<this.field.minValue) {
value=this.field.maxValue;
}
if(value>this.field.maxValue) {
value=this.field.minValue;
}
return this.fixPrecision(value);
},
onRender: function(ct, position){
Ext.ux.form.TimePickerField.superclass.onRender.call(this, ct, position);
this.rendered=false;
this.date=new Date();
var values={};
if(this.value) {
values=this._valueSplit(this.value);
this.date.setHours(values.h);
this.date.setMinutes(values.m);
this.date.setSeconds(values.s);
delete this.value;
}
else {
values={h:this.date.getHours(), m:this.date.getMinutes(), s:this.date.getSeconds()};
}
var spinnerWrap=Ext.DomHelper.append(this.el, {tag: 'div'});
var cfg=Ext.apply({}, this.spinnerCfg, {
renderTo: spinnerWrap,
readOnly: this.readOnly,
disabled: this.disabled,
listeners: {
spin: {
fn: this.onSpinnerChange,
scope: this
},
valid: {
fn: this.onSpinnerChange,
scope: this
},
afterrender: {
fn: function(spinner) {
spinner.wrap.applyStyles('float: left');
},
single: true
}
}
});
this.hoursSpinner=new Ext.ux.form.SpinnerField(
Ext.apply({}, cfg, {
minValue: 0,
maxValue: 23,
cls: 'first',
value: values.h
})
);
this.minutesSpinner=new Ext.ux.form.SpinnerField(
Ext.apply({}, cfg, {
minValue: 0,
maxValue: 59,
value: values.m
})
);
this.secondsSpinner=new Ext.ux.form.SpinnerField(
Ext.apply({}, cfg, {
minValue: 0,
maxValue: 59,
value: values.s
})
);
Ext.DomHelper.append(spinnerWrap, {tag: 'div', cls: 'x-form-clear-left'});
this.rendered=true;
},
_valueSplit: function(v) {
var split=v.split(':');
return {
h: split.length>0 ? split[0] : 0,
m: split.length>1 ? split[1] : 0,
s: split.length>2 ? split[2] : 0
};
},
onSpinnerChange: function() {
if(!this.rendered) {
return;
}
this.fireEvent('change', this, this.getRawValue());
},
disable: function() {
Ext.ux.form.TimePickerField.superclass.disable.call(this);
this.hoursSpinner.disable();
this.minutesSpinner.disable();
this.secondsSpinner.disable();
},
enable: function() {
Ext.ux.form.TimePickerField.superclass.enable.call(this);
this.hoursSpinner.enable();
this.minutesSpinner.enable();
this.secondsSpinner.enable();
},
setReadOnly: function(r) {
Ext.ux.form.TimePickerField.superclass.setReadOnly.call(this, r);
this.hoursSpinner.setReadOnly(r);
this.minutesSpinner.setReadOnly(r);
this.secondsSpinner.setReadOnly(r);
},
clearInvalid: function() {
Ext.ux.form.TimePickerField.superclass.clearInvalid.call(this);
this.hoursSpinner.clearInvalid();
this.minutesSpinner.clearInvalid();
this.secondsSpinner.clearInvalid();
},
getRawValue: function() {
if(!this.hoursSpinner){
this.date=new Date();
return {h:this.date.getHours(), m:this.date.getMinutes(), s:this.date.getSeconds()};
}else{
return {
h: this.hoursSpinner.getValue(),
m: this.minutesSpinner.getValue(),
s: this.secondsSpinner.getValue()
};
}
},
setRawValue: function(v) {
this.hoursSpinner.setValue(v.h);
this.minutesSpinner.setValue(v.m);
this.secondsSpinner.setValue(v.s);
},
isValid: function(preventMark) {
return this.hoursSpinner.isValid(preventMark) &&
this.minutesSpinner.isValid(preventMark) &&
this.secondsSpinner.isValid(preventMark);
},
validate: function() {
return this.hoursSpinner.validate() &&
this.minutesSpinner.validate() &&
this.secondsSpinner.validate();
},
getValue: function() {
var v=this.getRawValue();
return String.leftPad(v.h, 2, '0')+':'+
String.leftPad(v.m, 2, '0')+':'+
String.leftPad(v.s, 2, '0');
},
setValue: function(value) {
if(!this.rendered) {
this.value=value;
return;
}
value=this._valueSplit(value);
this.setRawValue(value);
this.validate();
}
});
Ext.form.TimePickerField=Ext.ux.form.TimePickerField;
Ext.reg('timepickerfield', Ext.form.TimePickerField);
Ext.ns('Ext.ux.form');
Ext.DateTimePicker = Ext.extend(Ext.DatePicker, {
timeFormat:'g:i:s A',
timeLabel:'时间',
timeWidth:100,
initComponent:function() {
Ext.DateTimePicker.superclass.initComponent.call(this);
this.id = Ext.id();
},
onRender: function(container,position){
Ext.DateTimePicker.superclass.onRender.apply(this,arguments);
var table = Ext.get(Ext.DomQuery.selectNode('table tbody',container.dom));
var tfEl = Ext.DomHelper.insertBefore(table.last(),{tag:'tr',
children:[{tag:'td',cls:'x-date-bottom',html:this.timeLabel,style:'width:30;'},{tag:'td',cls:'x-date-bottom ux-timefield', colspan:'2'}]},true);
this.tf.render(table.child('td.ux-timefield'));
var p=this.getEl().parent('div.x-layer');
if (p){
p.setStyle("height",p.getHeight()+31);
}
},
setValue : function(value){
var old = this.value;
if (!this.tf){
this.tf = new Ext.ux.form.TimePickerField();
this.tf.ownerCt = this;
}
this.value = this.getDateTime(value);
},
getDateTime: function(value){
if (this.tf){
var dt = new Date();
var timeval = this.tf.getValue();
value = Date.parseDate(value.format(this.dateFormat) + ' ' +this.tf.getValue(),this.format);
}
return value;
},
selectToday : function(){
if(this.todayBtn && !this.todayBtn.disabled){
this.value=this.getDateTime(new Date());
this.fireEvent("select", this, this.value);
}
}
});
Ext.reg('datetimepickerfield', Ext.DateTimePicker);
if (parseInt(Ext.version.substr(0, 1), 10) > 2) {
Ext.menu.DateTimeItem = Ext.DateTimePicker;
Ext.override(Ext.menu.DateMenu,{
initComponent: function(){
this.on('beforeshow', this.onBeforeShow, this);
if(this.strict = (Ext.isIE7 && Ext.isStrict)){
this.on('show', this.onShow, this, {single: true, delay: 20});
}
Ext.apply(this, {
plain: true,
showSeparator: false,
items: this.picker = new Ext.DatePicker(Ext.apply({
internalRender: this.strict || !Ext.isIE,
ctCls: 'x-menu-date-item'
}, this.initialConfig))
});
Ext.menu.DateMenu.superclass.initComponent.call(this);
this.relayEvents(this.picker, ["select"]);
this.on('select', this.menuHide, this);
if(this.handler){
this.on('select', this.handler, this.scope || this);
}
}
});
}else{
Ext.menu.DateTimeItem = function(config){
Ext.menu.DateTimeItem.superclass.constructor.call(this, new Ext.DateTimePicker(config), config);
this.picker = this.component;
this.addEvents('select');
this.picker.on("render", function(picker){
picker.getEl().swallowEvent("click");
picker.container.addClass("x-menu-date-item");
});
this.picker.on("select", this.onSelect, this);
};
Ext.extend(Ext.menu.DateTimeItem, Ext.menu.DateMenu, {
onSelect : function(picker, date){
this.fireEvent("select", this, date, picker);
Ext.menu.DateTimeItem.superclass.handleClick.call(this);
}
});
}
Ext.menu.DateTimeMenu = function(config){
Ext.menu.DateTimeMenu.superclass.constructor.call(this, config);
this.plain = true;
var di = new Ext.menu.DateTimeItem(config);
this.add(di);
this.picker = di;
this.relayEvents(di, ["select"]);
this.on('beforeshow', function(){
if(this.picker){
this.picker.hideMonthPicker(true);
}
}, this);
};
Ext.extend(Ext.menu.DateTimeMenu, Ext.menu.Menu, {
cls:'x-date-menu',
beforeDestroy : function() {
this.picker.destroy();
},
hide : function(deep){
if (this.picker.tf.innerList){
if ((Ext.EventObject.within(this.picker.tf.innerList)) || (Ext.get(Ext.EventObject.getTarget())==this.picker.tf.innerList))
return false;
}
if(this.el && this.isVisible()){
this.fireEvent("beforehide", this);
if(this.activeItem){
this.activeItem.deactivate();
this.activeItem = null;
}
this.el.hide();
this.hidden = true;
this.fireEvent("hide", this);
}
if(deep === true && this.parentMenu){
this.parentMenu.hide(true);
}
}
});
Ext.ux.form.DateTimeField = Ext.extend(Ext.form.DateField, {
dateFormat: 'Y-m-d'
,timeFormat: 'H:i:s'
,defaultAutoCreate : {tag: "input", type: "text", size: "20", autocomplete: "off"}
,initComponent:function() {
Ext.ux.form.DateTimeField.superclass.initComponent.call(this);
this.format = this.dateFormat + ' ' + this.timeFormat;
this.afterMethod('afterRender',function(){
this.getEl().applyStyles('top:0');
});
}
,getValue : function(){
return this.parseDate(Ext.form.DateField.superclass.getValue.call(this)) || '';
}
,onTriggerClick : function(){
if(this.disabled){
return;
}
if(this.menu == null){
this.menu = new Ext.menu.DateTimeMenu();
}
Ext.apply(this.menu.picker, {
minDate : this.minValue,
maxDate : this.maxValue,
disabledDatesRE : this.ddMatch,
disabledDatesText : this.disabledDatesText,
disabledDays : this.disabledDays,
disabledDaysText : this.disabledDaysText,
format : this.format,
timeFormat: this.timeFormat,
dateFormat: this.dateFormat,
showToday : this.showToday,
minText : String.format(this.minText, this.formatDate(this.minValue)),
maxText : String.format(this.maxText, this.formatDate(this.maxValue))
});
if (this.menuEvents) {
this.menuEvents('on');
}
else {
this.menu.on(Ext.apply({}, this.menuListeners, {
scope:this
}));
}
this.menu.picker.setValue(this.getValue() || new Date());
this.menu.show(this.el, "tl-bl?");
}
});
Ext.reg('datetimefield', Ext.ux.form.DateTimeField);
评论
直接setValue 呗 先格式化 然后数值传值
.x-date-bottom {font-size:12px}
没有用到秒,有用的同学可以自己加上。
能不能直接点击月份,而不用去点击这月的某一天呢???
我们以前是直接,进去后就自动展开月份面板 然后禁止页面面板收缩回去~
虽然有点土 但是没画多少时间就弄好了 呵呵。
能不能直接点击月份,而不用去点击这月的某一天呢???
貌似还有其他控件依赖
不错~~~
发表评论
-
SQL在线查询设计器2
2013-02-20 09:20 1254在前人的基础上。进行了扩展。前端用extjs,后端有jav ... -
SQL在线查询设计器
2012-12-17 13:55 1149//http://www.html580.com Ex ... -
EXTJS combo提交值的问题
2011-04-19 17:50 2785EXTJS2.2的版本Combo如果通 ... -
ext portal+dwr+spring实现个性主页面拖拉效果的核心代码
2009-01-10 14:07 2728个性化主页设置,左边是一棵树,左边是一个portal. ... -
扩展EXT.BUTTON
2009-06-18 10:13 1227Ext.ux.ImageButton = function(c ... -
extjs简易viewport左右结构的使用
2011-03-02 23:26 3356Ext.ux.ArchiveViewport = Ext.ex ... -
extjs表格行拖动插件
2011-03-02 23:23 3994Ext.ux.GridDragDropRowOrder = E ... -
Extjs Grid 自认为复选框的一个bug,并修复此bug
2010-09-03 15:34 1733当EXTJSGIRD增加复选框时,全选时,下一页头部的复选框仍 ... -
扩展combo下拉树
2010-09-03 12:23 975Ext.TreeComboflh = Ext.extend(E ... -
扩展combo
2010-09-03 12:20 1123在实际项目使用中为了方便combo的使用,扩展了下combo ... -
扩展的RowNumberer
2010-09-03 12:04 1710扩展Ext.grid.RowNumberer,序号顺号下来,不 ... -
struts2 jxl简易使用
2010-08-24 19:10 2180public String exportExcel() thr ... -
扩展EXT.BUTTON
2010-02-22 10:04 2186Ext.ux.ImageButton = function(c ... -
show下我的网盘 类windows文件管理
2009-11-30 21:43 2058在前人的成果上加以改造,实现了树的拖动,表格与树之间,右键菜单 ...
相关推荐
针对这一需求,EXT JS社区或开发人员通常会扩展其基础控件来实现“带有时分秒”的时间选择器。 标题所提及的"ext 时间控件带有时分秒的控件",实际上是一种自定义的EXT JS组件,它扩展了原生的日期选择器,增加了对...
标题“Ext时间日期选择控件,精确到秒”指出了该控件允许用户选择时间到秒级别,这对于需要精确时间记录的应用场景(如日程安排、定时任务等)非常关键。EXTJS提供了多种时间日期选择控件,如`MyTimeField.js`、`...
描述中提到的“ext自身控件不能选择时分秒”,意味着我们需要利用EXT JS的可扩展性,找到或创建一个扩展插件,使日期控件具备选择时、分、秒的能力。 一种常见的解决方案是使用第三方扩展,如“EXTJS DateTimeField...
"ext4.2 日历日期控件,可以选择时分秒"是一个专门针对这个需求的组件,它允许用户在网页应用中方便地选择日期、时间和秒数。这个控件是EXTJS库的一个组成部分,EXTJS是一个基于JavaScript的富客户端应用框架,广泛...
标题中的“Ext日期时间(时分秒)控件”指的是在Web开发中使用的一种特定的用户界面组件,它允许用户选择或输入日期和时间。在本文中,我们将会深入探讨这个主题,包括ExtJS框架中的DateTime控件的使用、功能以及如何...
不过,要实现年月日时分秒的选择,我们需要自定义或者扩展这个基础控件。在EXTJS中,可以通过配置项来定制控件的行为,例如改变时间间隔、设定默认值、添加格式化规则等。 创建一个年月日时分秒的时间控件,我们...
6. **可扩展性**:可以与其他EXT组件(如时间滑块)结合,创建更复杂的日期时间选择器。 在压缩包中的 "datetime4" 文件可能包含了以下内容: - **样式文件**(CSS):定义日期选择控件的外观和布局。 - **脚本...
在描述中提到的"支持时分秒的时间控件",意味着这个控件不仅限于选择日期,还能精确到小时、分钟和秒,这对于需要精确时间输入的场景非常有用。此外,这个时间控件还宣称支持多种浏览器,包括IE(至少兼容到IE8)、...
本文将详细讨论基于Ext4.2的年月日时分秒时间选择控件,一个功能强大且经过验证的组件,它能为用户提供方便、直观的时间输入体验。 首先,我们来了解Ext4.2。Ext JS是Sencha公司开发的一款JavaScript框架,主要用于...
在ExtJS 4中,虽然默认的日期选择器(DateField)只支持选择日期,但通过扩展或使用第三方插件,我们可以实现带有时分秒的选择器。这个"extjs4能用的带时分秒的日期控件"可能就是一个定制的组件,它允许用户不仅选择...
EXT的时间控件不仅提供了基本的日期和时间选择功能,还支持自定义格式化、日期范围限制、验证等功能,使开发者能够灵活地调整控件的行为和外观。 EXT时间控件的实现基于Ext.form.DateTimeField类,这个类继承自Ext....
为了满足更复杂的应用需求,本文将详细介绍如何对ExtJS 4.2的日期控件进行扩展,以实现包括年月日时分秒在内的完整日期时间选择功能。 #### 二、知识点解析 ##### 1. 扩展目的 通过扩展ExtJS 4.2的日期控件,我们...
在标题提到的"年月日时分秒、时分秒控件",我们可以理解为这是ExtJS中的日期选择器和时间选择器组件,用于用户友好的日期和时间输入。 1. **日期选择器(Date Field)**:ExtJS的`Ext.form.field.Date`类提供了一个...
EXT日期时间控件2是一款基于EXT JavaScript库的高级UI组件,专为网页应用设计,用于提供用户友好的日期和时间选择功能。EXT是一个强大的前端框架,由Sencha公司开发,广泛应用于构建富互联网应用程序(RIA)。EXT的...
总结,ExtJS 4.0.7中的年月日时分秒和时分秒控件提供了灵活的日期和时间选择功能。通过结合使用`Ext.picker.Date`和`Ext.picker.Time`,并结合适当的配置和事件处理,你可以创建出符合项目需求的日期时间选择界面。...
在EXT 3.x中,原生的DateTimeField可能只支持日期选择,不包含时分秒的精确选择。因此,"改写的datetimefield时间控件"是对原组件的扩展,增加了对时、分、秒的精确控制,允许用户选择完整的日期和时间,提高了数据...
在EXT JS 2.0框架中,DateTimeField控件是一个非常实用的组件,它扩展了基本的DateField控件,提供了更丰富的日期时间选择功能,包括小时、分钟和秒的显示与选择。这个控件是为了解决用户需要输入精确到秒的日期时间...
通过这样的方式,我们可以得到一个支持时分秒选择的EXTJS DateField扩展控件。这个控件在项目中可以提高数据输入的准确性,特别是在处理时间相关的业务逻辑时。同时,源码分析和自定义组件的编写也能加深对EXTJS框架...
网上找了一些,不是运行不了,就是代码繁多复杂。所以自己试着写了一个扩展的时间日期控件,可选时分秒,包含项目源代码,下载可直接运行·
创建一个包含年月日时分秒的日期控件,可以这样编写: ```javascript Ext.create('Ext.form.Panel', { title: '日期时间选择', width: 300, bodyPadding: 10, renderTo: Ext.getBody(), items: [{ xtype: '...