回答问题:http://www.iteye.com/problems/20038
需求是能动态设置TimeField的最大值和最小值:
首先观察源码,没有发现相关的接口.
// private
initComponent : function(){
Ext.form.TimeField.superclass.initComponent.call(this);
if(typeof this.minValue == "string"){
this.minValue = this.parseDate(this.minValue);
}
if(typeof this.maxValue == "string"){
this.maxValue = this.parseDate(this.maxValue);
}
if(!this.store){
var min = this.parseDate(this.minValue);
if(!min){
min = new Date(this.initDate).clearTime();
}
var max = this.parseDate(this.maxValue);
if(!max){
max = new Date(this.initDate).clearTime().add('mi', (24 * 60) - 1);
}
var times = [];
while(min <= max){
times.push([min.dateFormat(this.format)]);
min = min.add('mi', this.increment);
}
this.store = new Ext.data.ArrayStore({
fields: ['text'],
data : times
});
this.displayField = 'text';
}
}
它是继承combo的,所以要修改显示的值就需要对store入手,于是开始扩展,代码如下:
Ext.override( Ext.form.TimeField,{
setRangeValue : function(minValue,maxValue){
if(!Ext.isEmpty(minValue)){
this.minValue = this.parseDate(minValue);
}
if(!Ext.isEmpty(maxValue)){
this.maxValue = this.parseDate(maxValue);
}
var min = this.parseDate(this.minValue);
if(!min){
min = new Date(this.initDate).clearTime();
}
var max = this.parseDate(this.maxValue);
if(!max){
max = new Date(this.initDate).clearTime().add('mi', (24 * 60) - 1);
}
var times = [];
while(min <= max){
times.push([min.dateFormat(this.format)]);
min = min.add('mi', this.increment);
}
this.store.loadData(times);
}
});
测试代码:
function test3(){
Ext.override( Ext.form.TimeField,{
setRangeValue : function(minValue,maxValue){
if(!Ext.isEmpty(minValue)){
this.minValue = this.parseDate(minValue);
}
if(!Ext.isEmpty(maxValue)){
this.maxValue = this.parseDate(maxValue);
}
var min = this.parseDate(this.minValue);
if(!min){
min = new Date(this.initDate).clearTime();
}
var max = this.parseDate(this.maxValue);
if(!max){
max = new Date(this.initDate).clearTime().add('mi', (24 * 60) - 1);
}
var times = [];
while(min <= max){
times.push([min.dateFormat(this.format)]);
min = min.add('mi', this.increment);
}
this.store.loadData(times);
}
});
var t = new Ext.form.TimeField({
minValue: '9:00 AM',
maxValue: '6:00 PM',
increment: 30,
renderTo:document.body
});
var b = new Ext.Button({
renderTo:document.body,
text:'设置结束时间为20:00',
handler:function(){
t.setRangeValue(null,'10:00 PM')
}
})
}
Ext.onReady(test3);
分享到:
相关推荐
这个"EXTJS扩展例子集"显然是一个包含EXTJS3.0相关扩展组件的资源包,旨在帮助开发者理解和学习如何使用这些扩展。 在EXTJS中,扩展(Extensions)通常是指对框架原有功能的增强或定制,它们可以是新的组件、小部件...
具体来说,这里提供的代码通过Extjs的override方法扩展了TimeField类,重写了setValue和formatValue函数。在这个重写的过程中,首先判断传入的值v的长度是否超过8位,这是根据时间戳的长度来判断的。如果超过8位,就...
通过学习和使用这些扩展控件,开发者可以提高代码的复用性,减少开发时间,并提升应用程序的灵活性。 接着是“ExtJs:收集基于ExtJs扩展的一些控件2”。这可能是对另一批ExtJs扩展控件的介绍,可能包含了一些新的或...
本文将深入探讨“Extjs扩展DateTimeField时间初始化及点击日期显示Bug”这一主题,帮助开发者解决实际开发中遇到的难题。 DateTimeField是EXTJS中用于处理日期和时间选择的组件,它允许用户同时选择日期和时间,...
extjs扩展教程 extjs扩展教程extjs扩展教程
然而,有时开发人员可能需要对这些控件进行自定义,以满足特定业务需求,比如在本例中,我们需要扩展EXTJS的时间控件以实现“年度”选择的功能。 EXTJS的Date Picker默认提供了日、月、年的选择,但可能并不完全...
在标题和描述中提到的“ExtJs DWR扩展”是指将这两者结合使用,以增强数据交换和UI更新的能力。 1. **DWRProxy**: DWRProxy是ExtJs中的一个类,它作为DWR和ExtJs之间的桥梁,使得ExtJs可以利用DWR的远程调用功能。...
在ExtJs4.2表单控件里分别有个时间控件(datafield)和时间控件(timefield),但是官方提供的控件不能将日期和时分秒整合到一起,我从网上搜集整理了一个可用的选择日期时分秒的拓展控件,extjs版本是4.2,亲测能用,...
时间控件(TimeField)则是在日期控件基础上的扩展,让用户能够选择具体的时间。EXTJS6中,时间选择通常是通过一个下拉的小时和分钟列表实现,用户可以通过组合这些选项来设定精确时间。时间格式同样可以通过`format...
本文是extjs的扩展包,可以在页面中插入图片,把这个js文件放入相应的目录下,extjs就是引用这个类型,就可以插入图片
"Extjs树分页组件扩展"就是为了解决这一问题而设计的,它通过扩展TreeLoader和PagingToolbar,实现了在树形组件中进行分页加载的效果。 **TreeLoader的扩展** TreeLoader是ExtJS中负责异步加载树节点的类。在原生...
ExtJS扩展包(ExtJsExtenderControl)是针对ExtJS框架的一个增强工具,它扩展了ExtJS的功能,特别是在与.NET框架结合使用时,为开发者提供了更丰富的控件和功能。ExtJS是一个流行的JavaScript库,用于构建富客户端...
例如,创建一个简单的GridPanel,只需在JSP页面中插入对应的EXTJS标签,并设置相关属性即可。 5. **优势与好处**:使用EXTJS扩展标记可以提高代码的可读性和可维护性,减少重复代码,加快开发速度。同时,由于EXTJS...
在EXTJS这个强大的JavaScript框架中,时间控件是开发者经常使用的组件之一,尤其在构建复杂的Web应用程序时。EXTJS的时间控件允许用户选择或输入时间,通常以小时、分钟和秒为单位,提供了用户友好的界面和丰富的...
dreamweaver Extjs 扩展插件语法提示 在dreamweaver中可以显示Extjs语法提示,提升开发效率,用起来很方便 分.zxp和.mxp两种扩展 cc2015,cs6均可用。 扩展安装需要到用Adobe Extension Manager,请自行在网上百度,...
在给定的场景下,"extjs6 datetimefield 扩展时间控件 分时秒控件"描述了一个针对EXTJS6的`datetimefield`组件的增强,目的是增加对小时、分钟和秒钟的单独选择功能。 EXTJS6是Sencha公司推出的一个强大的...
总之,“extjs3.2、3.3 时间控件 日期控件扩展”是关于如何在ExtJS 3.x版本中使用和自定义日期及时间选择器的知识点,涵盖了基本使用、扩展开发、实际应用等多个方面。通过深入理解这些概念,开发者可以创建出更加...
同事写的extjs月份扩展控件,可以直接调用,用于只要求显示月份不显示日期的项目
### ExtJS 组件扩展知识点详解 #### 一、ExtJS组件扩展概述 ExtJS是一款基于JavaScript的开源前端框架,主要用于构建复杂的企业级Web应用程序。它提供了丰富的UI组件库,可以帮助开发者快速构建美观且功能强大的...