随笔 - 118  文章 - 0 评论 - 341 阅读 - 299万
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

ExtJS中除了提供丰富的组件外,我们还可以扩展他的组件。

在这里,我们将在Date日期组件上添加一个【清除】按钮,用于此组件已选中值的清除。

目录

1. Date组件介绍

2. 主要代码说明

3. 代码与在线演示

 

1. Date组件介绍

这里的Date组件全称为 Ext.form.field.Date,为form表单一个组件。

查看Ext.form.field.Date的源代码的得知需要 Ext.picker.Date

Ext.picker.Date是一个日期选择器,包含了日期选中、渲染布局等等,也正是我们需要修改的文件。

 

2. 主要代码说明

Date组件原先就包括了一个【今天】按钮,可根据此按钮在Ext.picker.Date的创建方式来创建一个【清除】按钮。

2.1 创建一个js文件,用以覆盖Ext.picker.Date

1
2
3
4
Ext.define('Js.ux.DatePicker', {
    override: 'Ext.picker.Date'
    ...
}

 

2.2 renderTpl属性

说明:renderTpl表示一个组件的渲染模板,在【今天】按钮后面渲染【清除】按钮。

 

2.3 beforeRender方法

说明:在此方法中初始化【清除】按钮。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
beforeRender: function () {
    var me = this;
    me.callParent();
    // 创建按钮
    me.clearBtn = new Ext.button.Button({
        ownerCt: me,
        ownerLayout: me.getComponentLayout(),
        text: '清除',
        tooltip: '清除日期',
        tooltipType: 'title',
        handler: me.selectClear,
        scope: me
    });
}

  

2.4 selectClear方法

说明:此方法表示点击【清除】按钮执行的内容。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
selectClear: function () {
    var me = this,
        btn = me.clearBtn,
        handler = me.handler;
 
    if (btn && !btn.disabled) {
        me.setValue('');
        me.fireEvent('select', me, me.value);
        if (handler) {
            handler.call(me.scope || me, me, me.value);
        }
        me.onSelect();
    }
    return me;
}

  

3. 代码与在线演示

3.1 完整代码

在ExtJS文件后面引入此文件即可:

 

3.2 运行图

 

3.3 在线演示

在线演示http://www.akmsg.com/ExtJS/index.html#App.Demo.DateExtendTab

 

posted on   FangMu  阅读(3658)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
点击右上角即可分享
微信分享提示