【问题标题】:Update Datepickerfield from Model Sencha Touch从 Model Sencha Touch 更新 Datepickerfield
【发布时间】:2012-01-21 20:38:11
【问题描述】:
我有一个模型和存储从我的表单字段中获取值。
我的表单包含一个文本字段、选择字段、日期选择器字段和单选字段。
我从表单中获取值并用它们更新我的模型。稍后我将模型加载到表单中时,这些值会重新出现在除日期选择器字段之外的所有组件上。
我正在使用本地存储代理。我检查了数据库中的值,日期显示格式如下:“2011-12-13T18:30:00.000Z”
我认为这可能是问题所在。也许 datepickerfield 不知道如何加载格式。我该怎么办 ??
萨沙
【问题讨论】:
标签:
forms
model
datepicker
sencha-touch
store
【解决方案1】:
你告诉我的是格式化日期的方法,而不是如何去做……
但是日期仍然没有加载并且格式错误。
不,实际上我找到了答案,这就是你必须做的:
-
您的 showForm 控制器(用于在表单中加载日期)应如下所示:
showForm : 函数(参数){
//load the model necessary
var model = BReimb.stores.ListStore.getAt(params.index);
//load all fields except datepickerfield
Ext.getCmp('formPane').load(model);
Ext.getCmp('MainView').setActiveItem(1);
//for datepicker field --> where the Ext.getCmp('date') is the id of my datepicker field in the form
if(model.data.date != "")
Ext.getCmp('date').setValue(new Date(model.data.date));
要格式化日期,如果你使用 itemTpl,它应该是:
itemTpl : '{date:date("d M Y")}'
希望这可以帮助某人:D
【解决方案2】:
您可以使用以下代码将该日期格式转换为其他格式。
最初设置日期模式,即
Date.patterns = {
ISO8601Long : "Y-m-d H:i:s",
ISO8601Short : "Y-m-d",
ShortDate : "n/j/Y",
LongDate : "l, F d, Y",
FullDateTime : "l, F d, Y g:i:s A",
MonthDay : "F d",
ShortTime : "g:i A",
LongTime : "g:i:s A",
SortableDateTime : "Y-m-d\\TH:i:s",
UniversalSortableDateTime : "Y-m-d H:i:sO",
YearMonth : "F, Y"
};
然后按如下方式应用此日期模式,即
yourDate.format(Date.patterns.ISO8601Short);
yourDate.format(Date.patterns.FullDateTime);
希望对您有所帮助...