关于 extjs:Ext.ux.form.field.DateTime 问题

Ext.ux.form.field.DateTime questions我创建了一个 Ext.ux.form.field.DateTime 插件,但这里有一些问题:如果我不设置宽度/高度,则工具栏中的 DateTime 丢...

我创建了一个 Ext.ux.form.field.DateTime 插件,但这里有一些问题:

  • 如果我不设置宽度/高度,则工具栏中的 DateTime 丢失
  • 无法在 RowEditing 插件中显示正确的宽度
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
Ext.define('Ext.ux.form.field.DateTime', {
    extend:'Ext.form.FieldContainer',
    mixins: {
        field: 'Ext.form.field.Field'
    },
    alias: 'widget.datetimefield',
    layout: 'hbox',
    width: 200,
    height: 22,
    combineErrors: true,
    msgTarget :'side',

    dateCfg:{},
    timeCfg:{},

    initComponent: function() {
        var me = this;
        me.buildField();
        me.callParent();
        this.dateField = this.down('datefield')
        this.timeField = this.down('timefield')
        me.initField();
    },

    //@private
    buildField: function(){
        this.items = [
            Ext.apply({
                xtype: 'datefield',
                format: 'Y-m-d',
                width: 100
            },this.dateCfg),
            Ext.apply({
                xtype: 'timefield',
                format: 'H:i',
                width: 80
            },this.timeCfg)
        ]
    },

    getValue: function() {
        var value,date = this.dateField.getSubmitValue(),time = this.timeField.getSubmitValue();
        if(date){
            if(time){
                var format = this.getFormat()
                value = Ext.Date.parse(date + ' ' + time,format)
            }else{
                value = this.dateField.getValue()
            }
        }
        return value
    },

    setValue: function(value){
        this.dateField.setValue(value)
        this.timeField.setValue(value)
    },

    getSubmitData: function(){
        var value = this.getValue()
        var format = this.getFormat()
        return value ? Ext.Date.format(value, format) : null;
    },

    getFormat: function(){
        return (this.dateField.submitFormat || this.dateField.format) +"" + (this.timeField.submitFormat || this.timeField.format)
    }
})
相关讨论
 

 


你可以使用弹性

1
2
3
4
5
6
7
8
9
10
11
12
        Ext.apply({
            xtype: 'datefield',
            format: 'Y-m-d',
            width: 100,
            flex: 2
        },this.dateCfg),
        Ext.apply({
            xtype: 'timefield',
            format: 'H:i',
            width: 80,
            flex: 1
        },this.timeCfg)
本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

ExtJS, SenchaTouch - FormPanel can't load values from a store?如何将值从商店加载到表单面板中?我在这里构建了一个完整的示例。我不确定为什么我的表单...
Sencha Touch - Offline Application with offlineStorage synced to a online store. Fetch online data on demand and add to offlineStoreage我正在开发一...
ExtJS 3.x DateField menuListeners show/hide每当我的 DateField 上发生显示/隐藏事件时,我都会尝试调用一些函数。我相信这些应该在菜单小部件打开和关闭时...
Resolving Dirty Flag in Ext.grid.Panel cell在 Ext JS 网格中,我正在编辑单个单元格。在其中一列中,我有一个触发 Save 事件的 Save 按钮。如何删除已编辑...
HTML Form to ExtJS Form我有一个 html 表单,其中的字段非常分散。该页面是使用 html 表 - rowspan 和 colspan 组合创建的。我需要将此表单转换为 ExtJS 并...