2016-12-09 8 views
1

Существует массив items:Как установить значение datetime Значение для текстового поля extjs?

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

Мне нужно установить значение времени даты в этом поле:

Ext.getCmp('usernameID').setValue(Fromdate); 

В со дня я получаю значение DateTime. Но при настройке я получаю:

Uncaught TypeError: Cannot read property 'setValue' of undefined

+0

Try 'Itemid: 'usernameID'' вместо' ID: 'usernameID'' или: 'Ext.getCmp ('[имя = имя пользователя]')' – Zoran

+0

Предпочтительно использовать DateField вместо текстового поля. xtype: datefield, value: new Date(). Посмотрите http://docs.sencha.com/extjs/5.1.0/api/Ext.form.field.Date.html. – josei

ответ

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

В случае, если это не поможет вам размещать больше части вашего кода.

0

Сначала определите тип вашего объекта с помощью свойства xtype. После этого вам нужно установить date, который вы хотите установить. В этом примере я использовал ExtJSdatepicker, чтобы получить дату, но вы также можете использовать 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")/>