我正在使用Ext Js v6.2 Grid,在我的应用程序中,我有Datetimefield,对于用户我显示日期格式为
format: 'd/m/Y H:i'
但是在向sql提交数据时,我需要转换为sql格式,
format: 2017-08-25 16:34
这是我的代码,我的输出为2016-03-14T18:30:00.000Z
但我需要format: 2017-08-25 16:34
。
如果我错了,请更正我的代码,我搜索了文档和其他没有帮助的内容。
var headerObj = page.getForm().getFieldValues();
var hdrData = "<HeaderData>" + x2js.json2xml_str(headerObj)" +</HeaderData>";
console.log(hdrData);
{
xtype: 'datefield',
border: true,
width: '100%',
fieldLabel: 'somefield',
name: 'somefield',
format: 'd/m/Y H:i',
submitFormat: 'Y-m-d H:i',
}
答案 0 :(得分:0)
ExtJS没有提供这样做的功能。您必须创建一个转换日期的自定义函数:
http://example.com/delete.php
答案 1 :(得分:0)
tabLayout.getTabAt(i).setIcon();
方法返回模型数据。模型数据旨在与商店模型一起使用,商店模型通常可以使用javascript日期,因此,该函数从datefields返回javascript日期。仅在序列化期间,javascript日期然后使用浏览器默认值转换为字符串(因为序列化函数已经预期输入仅为字符串)。
您可能想要尝试的是getFieldValues
。此函数将返回所有字段的字符串值;如果是日期字段,则使用form.getSubmitData
格式化日期。
第二种可能性是使用模型提交,而不是表单。
使用代理加载/保存操作定义模型:
submitFormat
然后创建新记录并进入表单:
Ext.define('MyModel',{
extend: 'Ext.data.Model',
fields:[{
name: 'somefield',
type: 'date',
dateFormat: 'Y-m-d H:i'
}],
proxy: {
url: '...'
}
})
或从服务器编辑现有记录:
form.loadRecord(Ext.create('MyModel'))
然后再将其保存到服务器:
MyModel.load(id, {
success: function(record) {
form.loadRecord(record);
}
})
这有一个很好的副作用,你可以将ExtJS的原始XML阅读器和编写器添加到你的模型代理,你可以取消自己的XML转换功能。
答案 2 :(得分:0)
在ExtJs中,docs表单有使用 getValues 获取表单所有值的方法。您可以参考ExtJs docs
我已经创建了一个小型演示来向您展示它是如何工作的。
Ext.create('Ext.form.Panel', {
renderTo: Ext.getBody(),
width: 300,
bodyPadding: 10,
title: 'Date',
margin: 10,
items: [{
xtype: 'datefield',
anchor: '100%',
fieldLabel: 'From',
format: 'd/m/Y H:i',
submitFormat: 'Y-m-d H:i',
allowBlank: false,
name: 'date'
}, {
xtype: 'button',
text: 'Submit Date',
formBind: true,
handler: function () {
var date = this.up('form').getValues().date;
/* this is also one way to get value by date field.
date =this.up('form').down('datefield').getValue(),
submittedDate = Ext.Date.format(date,'Y-m-d H:i');
*/
Ext.Msg.alert('Success', `Selected date is <b>${date}</b>`);
}
}]
});