需求说明:
1 依据选择的日期,加载相应的列表数据,如图:
开发说明
1 开发思路: 在日期值变化的事件中获得选择后的日期值,传给后台,然后从后台加载相应的数据
2 问题:在查看extjs2.2 的api的官方说明文档,文档对datefield组件的change事件说明如下:
change : ( Ext.form.Field this, Mixed newValue, Mixed oldValue )
Fires just before the field blurs if the field value has changed.
这句话是说值发生变化,并且在失去焦点之前触发此事件,也就是说如果此日期组件的值发生变化,而焦点并没有失去,这个事件也就不会触发。通过我们的程序验证,事实也的确如此。我们需要值发生变化就要触发相应的事件。
3 解决方法:
从源头找事件:是用户点击相应的日期,才导致文本框里的值发生变换。可以捕获这个点击选择事件,通过这个事件我们得到日期值,传给后台,加载列表数据
4 具体做法:
继承Ext.form.DateField,覆盖menuListeners这个私有监听器属性,封装类如下:
Ext.form.CustomDateField = Ext.extend(Ext.form.DateField, {
// private
readOnly: true,
setValueFn:null,
menuListeners : {
select: function(m, d){
this.setValue(d);
if(this.setValueFn)
this.setValueFn.call(this,this.formatDate(this.parseDate(d)));
},
show : function(){
this.onFocus();
},
hide : function(){
this.focus.defer(10, this);
var ml = this.menuListeners;
this.menu.un("select", ml.select, this);
this.menu.un("show", ml.show, this);
this.menu.un("hide", ml.hide, this);
}
}
});
Ext.reg('customDateField', Ext.form.CustomDateField);
5 使用这个自定义的组件:
例:
{
fieldLabel : '计划开始日期',
vtype : 'isBlank',
xtype : 'datefield',
xtype : 'customDateField',
setValueFn:function(value){
alert(value);
},
format : 'Y-m-d'
}
这种方法不好的地方,就是覆盖了extjs提供的私有属性menuListeners,不知路过的朋友,有没有比较好的解决办法
- 大小: 49.5 KB
- 大小: 12 KB
分享到:
相关推荐
通过研究和理解"ExtJS日期多选组件源码",开发者可以深入学习ExtJS组件设计、事件处理、数据绑定等核心概念,并能进一步定制适合自己项目需求的日期选择组件。这样的组件对于提高开发效率和用户体验具有积极的意义。
在ExtJs框架中,日期组件(DateField)是用于用户输入日期的常见控件。然而,标准的ExtJs DateField并未内置清空日期的功能,这可能会在某些应用场景中造成不便。为了解决这个问题,我们需要自定义一个扩展,为日期...
ExtJS 6.2 实战
在EXTJS这个强大的JavaScript框架中,时间日期选择组件是一个至关重要的元素,它为用户提供了方便的方式来选择和输入日期和时间。这些组件使得Web应用程序能够更好地处理时间相关的数据输入,提高用户体验,同时也...
EXTJS 是一个强大的JavaScript前端框架,它主要用于构建富客户端应用,提供丰富的用户界面组件和灵活的可定制性。EXTJS 的核心在于其组件化的架构,允许开发者构建复杂的UI布局和功能丰富的应用程序。以下是对EXTJS...
综上所述,"EXTJS2.2开发实战项目"不仅是一个实战练习,更是一个深入理解EXTJS2.2、Java和JavaScript结合开发的宝贵案例。通过对这个项目的学习,开发者可以提升EXTJS的使用技能,理解Web应用程序的完整生命周期,并...
整个项目是作者本人在实际工作中完成的项目部分功能,项目中设计的的技术: 1.ExtJs 常用控件使用 2.ExtJs 日期控件的重写与列表表头菜单控件的重写 3.ExtJs 结合Jquery修改样式和自定义样式 4.JavaScript 伪继承的...
ExtJS开发实战 ExtJS开发实战 上传只能选资源分,没办法,我想免费分享的
- 组件化开发:ExtJs的所有界面元素都是以组件形式存在,组件可以包含子组件,从而形成一个组件树,方便进行界面布局和事件处理。 - 数据处理:ExtJs对数据处理提供了一套完整机制,比如数据模型(Model)和数据存储...
- **最佳实践**: 分享了一些在开发过程中积累的最佳实践,包括代码优化、性能提升等方面的经验总结。 #### 6. 学习资源与进阶指南 对于初学者来说,本书不仅提供了详细的理论介绍,还附带了丰富的实践指导。 - **...
5. **创建项目**: 创建一个新的Spket项目,然后将你的ExtJS 3.0代码文件导入到项目中。 6. **开始开发**: 现在你可以开始使用Spket的强大功能,如代码提示、自动完成、语法检查和调试,来提高你的ExtJS开发效率。 ...
### ExtJS开发实战知识点解析 #### 一、ExtJS简介 ExtJS 是一款基于 JavaScript 的开源框架,主要用于构建复杂的前端应用程序。它提供了丰富的 UI 组件库以及强大的数据处理能力,使得开发者可以快速地构建出高...
在EXTJS这个强大的JavaScript框架中,开发者经常遇到各种控件的使用问题,特别是涉及到日期时间选择的组件。本文将深入探讨“Extjs扩展DateTimeField时间初始化及点击日期显示Bug”这一主题,帮助开发者解决实际开发...
在"无废话ExtJS系列教程十八[继承:Extend]"中,我们主要关注的是ExtJS中的类继承机制,这是一个核心特性,它允许开发者创建可复用和可扩展的组件结构。在JavaScript中,继承是通过原型链实现的,而在ExtJS中,它被...
通过以上内容,我们可以深入了解ExtJS中Combobox组件的使用和配置,从而在实际项目中灵活地创建满足需求的下拉列表。无论是简单的数据选择还是复杂的动态查询,Combobox都是一个强大且实用的工具。在学习和实践中,...
总结,EXTJS 6.6框架的Web项目提供了一个完整的登录和首页示例,展示了EXTJS在构建复杂Web应用时的强大能力。通过学习和理解这个项目,开发者可以更好地掌握EXTJS的核心特性,提升自己的前端开发技能。
在EXTJS6中,日期时间控件是一种强大的用户界面组件,它将传统的日期选择器与时间选择器结合在一起,提供了一种便捷的方式来输入和编辑日期和时间数据。这个控件在许多应用程序中都非常实用,特别是在那些需要精确...
3. **事件处理**:组件通常会绑定各种事件,如`select`事件,当用户选择一个新的日期和时间后触发。开发者可以通过监听这些事件来执行相应的业务逻辑。 4. **国际化支持**:ExtJS支持多语言,所以这个组件也能够...