`
笨鸟先飞
  • 浏览: 28944 次
  • 来自: ...
社区版块
存档分类
最新评论

EXTJS项目实战经验总结一:日期组件的change事件

EXT 
阅读更多

需求说明:

        

   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
分享到:
评论
1 楼 jianfeng008cn 2008-12-03  
可以监听关闭事件的吧?

相关推荐

    ExtJS日期多选组件源码

    通过研究和理解"ExtJS日期多选组件源码",开发者可以深入学习ExtJS组件设计、事件处理、数据绑定等核心概念,并能进一步定制适合自己项目需求的日期选择组件。这样的组件对于提高开发效率和用户体验具有积极的意义。

    ExtJs 带清空功能的日期组件

    在ExtJs框架中,日期组件(DateField)是用于用户输入日期的常见控件。然而,标准的ExtJs DateField并未内置清空日期的功能,这可能会在某些应用场景中造成不便。为了解决这个问题,我们需要自定义一个扩展,为日期...

    ExtJS 6.2 实战 下载

    ExtJS 6.2 实战

    extjs时间日期选择组件

    在EXTJS这个强大的JavaScript框架中,时间日期选择组件是一个至关重要的元素,它为用户提供了方便的方式来选择和输入日期和时间。这些组件使得Web应用程序能够更好地处理时间相关的数据输入,提高用户体验,同时也...

    EXTJS讲解个人项目经历

    EXTJS 是一个强大的JavaScript前端框架,它主要用于构建富客户端应用,提供丰富的用户界面组件和灵活的可定制性。EXTJS 的核心在于其组件化的架构,允许开发者构建复杂的UI布局和功能丰富的应用程序。以下是对EXTJS...

    extjs2.2开发实战项目 已经发布运行

    综上所述,"EXTJS2.2开发实战项目"不仅是一个实战练习,更是一个深入理解EXTJS2.2、Java和JavaScript结合开发的宝贵案例。通过对这个项目的学习,开发者可以提升EXTJS的使用技能,理解Web应用程序的完整生命周期,并...

    ExtJs4.2实战项目

    整个项目是作者本人在实际工作中完成的项目部分功能,项目中设计的的技术: 1.ExtJs 常用控件使用 2.ExtJs 日期控件的重写与列表表头菜单控件的重写 3.ExtJs 结合Jquery修改样式和自定义样式 4.JavaScript 伪继承的...

    ExtJS开发实战-详解

    ExtJS开发实战 ExtJS开发实战 上传只能选资源分,没办法,我想免费分享的

    ExtJs开发实战

    - 组件化开发:ExtJs的所有界面元素都是以组件形式存在,组件可以包含子组件,从而形成一个组件树,方便进行界面布局和事件处理。 - 数据处理:ExtJs对数据处理提供了一套完整机制,比如数据模型(Model)和数据存储...

    php+ExtJS 开发实战

    - **最佳实践**: 分享了一些在开发过程中积累的最佳实践,包括代码优化、性能提升等方面的经验总结。 #### 6. 学习资源与进阶指南 对于初学者来说,本书不仅提供了详细的理论介绍,还附带了丰富的实践指导。 - **...

    Extjs3.0 常用组件介绍及怎么安装开发利器Spket

    5. **创建项目**: 创建一个新的Spket项目,然后将你的ExtJS 3.0代码文件导入到项目中。 6. **开始开发**: 现在你可以开始使用Spket的强大功能,如代码提示、自动完成、语法检查和调试,来提高你的ExtJS开发效率。 ...

    ExtJS开发实战

    ### ExtJS开发实战知识点解析 #### 一、ExtJS简介 ExtJS 是一款基于 JavaScript 的开源框架,主要用于构建复杂的前端应用程序。它提供了丰富的 UI 组件库以及强大的数据处理能力,使得开发者可以快速地构建出高...

    Extjs扩展DateTimeField时间初始化及点击日期显示Bug

    在EXTJS这个强大的JavaScript框架中,开发者经常遇到各种控件的使用问题,特别是涉及到日期时间选择的组件。本文将深入探讨“Extjs扩展DateTimeField时间初始化及点击日期显示Bug”这一主题,帮助开发者解决实际开发...

    无废话ExtJs 系列教程十八[继承:Extend]

    在"无废话ExtJS系列教程十八[继承:Extend]"中,我们主要关注的是ExtJS中的类继承机制,这是一个核心特性,它允许开发者创建可复用和可扩展的组件结构。在JavaScript中,继承是通过原型链实现的,而在ExtJS中,它被...

    无废话ExtJs 教程十[下拉列表:Combobox]

    通过以上内容,我们可以深入了解ExtJS中Combobox组件的使用和配置,从而在实际项目中灵活地创建满足需求的下拉列表。无论是简单的数据选择还是复杂的动态查询,Combobox都是一个强大且实用的工具。在学习和实践中,...

    extjs6.6框架的web项目(登录+首页)

    总结,EXTJS 6.6框架的Web项目提供了一个完整的登录和首页示例,展示了EXTJS在构建复杂Web应用时的强大能力。通过学习和理解这个项目,开发者可以更好地掌握EXTJS的核心特性,提升自己的前端开发技能。

    Extjs6 日期时间控件

    在EXTJS6中,日期时间控件是一种强大的用户界面组件,它将传统的日期选择器与时间选择器结合在一起,提供了一种便捷的方式来输入和编辑日期和时间数据。这个控件在许多应用程序中都非常实用,特别是在那些需要精确...

    Extjs 年月日时分秒组件

    3. **事件处理**:组件通常会绑定各种事件,如`select`事件,当用户选择一个新的日期和时间后触发。开发者可以通过监听这些事件来执行相应的业务逻辑。 4. **国际化支持**:ExtJS支持多语言,所以这个组件也能够...

Global site tag (gtag.js) - Google Analytics