如何为extjs textfield设置datetime值?

时间:2016-12-09 11:02:46

标签: javascript datetime extjs textfield setvalue

有一组material-ui/build

items

我需要将日期时间值设置为此文本字段:

items: [{
  fieldLabel: 'Username:',
  id: 'usernameID',
  readOnly: true,
  value: user.username,
  name: "username"
}]

从日期开始,我获得了datetime的价值。但在设定我的时候:

  

未捕获的TypeError:无法读取属性' setValue'未定义的

2 个答案:

答案 0 :(得分:1)

您的商品中未定义xtype。您是否使用项目的默认xtype?您的文本字段或其他内容是否已呈现?

此代码功能正常:

items: [{
    xtype: 'textfield',
    id: 'myCustomId',
    fieldLabel: 'Label',
    name: 'username',
    value: 'something',
    readOnly: true
}, {
    xtype: 'button',
    handler: function (button, e) {
        var cmp = Ext.getCmp('myCustomId');
        cmp.setValue(Ext.Date.format(new Date(), 'Y-m-d'))
    },
    text: 'Set the value'
}]

查看小提琴 https://fiddle.sencha.com/#view/editor&fiddle/1m7f

如果这不能帮助您发布代码的更多部分。

答案 1 :(得分:0)

首先使用xtype属性定义对象的类型。之后,您需要获得要设置的date。在此示例中,我使用 ExtJS datepicker来获取日期,但您也可以使用new Date()

获得日期后,您需要使用format函数对其进行格式化,然后使用此格式化值set对象进行格式化。在这个例子中,我使用了两种格式Y-d-m(年,月和日)和d-m-Y(日,月和年)。有关格式访问this link的更多信息。

要在其他版本的ExtJS中测试,请访问this fiddle



   Ext.create('Ext.window.Window', {
    title: 'Set Date',
    closable: false,
    width: 500,
    layout: 'vbox',
    bodyStyle: 'padding: 5px;',
    items: [{xtype: 'container',
            layout: {
                type: 'hbox',
                align: 'stretch'
            },
            items: [{
                xtype: 'datepicker',
                minDate: new Date(),
                bodyStyle: 'padding-left: 50px;',
                handler: function(picker, date) {
                    Ext.getCmp('txtDate1').setValue(Ext.Date.format(date, 'Y-m-d'));
                    Ext.getCmp('txtDate2').setValue(Ext.Date.format(date, 'd-m-Y'));
                }
            }, {
                xtype: 'container',
                    layout: {
                        type: 'vbox',
                        align: 'stretch'
                    },
                    items: [{
                        xtype: 'textfield',
                        fieldLabel: 'Date 1:',
                        labelAlign: 'right',
                        id: 'txtDate1',
                        width: 200
                    }, {
                        xtype: 'textfield',
                        fieldLabel: 'Date 2:',
                        labelAlign: 'right',
                        id: 'txtDate2',
                        width: 200
                    }]
            }]
        }]
}).show();

<script src="http://cdn.sencha.com/ext/gpl/4.2.0/ext-all.js"></script>
<link type="text/css" rel="stylesheet" href="http://cdn.sencha.com/ext/gpl/4.2.0/resources/css/ext-all.css")/>
&#13;
&#13;
&#13;