从Model Sencha Touch更新Datepickerfield

时间:2011-12-16 09:26:45

标签: forms model datepicker sencha-touch store

我有一个模型和商店,它从我的表单字段中获取值。 我的表单包含textfield,selectfield,datepickerfield和radiofield。

我从表单中获取值并使用它们更新我的模型。稍后我将模型加载到表单中时,除了datepickerfield之外,值会重新出现在所有组件上。

我正在使用localstorage代理。我检查了数据库中的值,日期显示如下:“2011-12-13T18:30:00.000Z”

我认为这可能是问题所在。也许datepickerfield不知道如何加载格式。我该怎么办 ??

萨莎

2 个答案:

答案 0 :(得分:0)

您可以使用以下代码将日期格式转换为其他格式。 最初设置日期模式,即

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);

希望它会有所帮助...

答案 1 :(得分:0)

你告诉我的是格式化日期的方法,而不是如何格式化... 但是这个日期仍然没有加载&格式错了。 实际上我找不到答案,这就是你要做的事情:

  1. 您的showForm控制器(在表单中加载日期)应如下所示: showForm:function(params){

    //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));
    
  2. 要设置日期格式,请使用itemTpl进行格式化: itemTpl:'{date:date(“d M Y”)}'

  3. 希望这有助于某人:D