【问题标题】: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】:

    你告诉我的是格式化日期的方法,而不是如何去做…… 但是日期仍然没有加载并且格式错误。 不,实际上我找到了答案,这就是你必须做的:

    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));
      
    2. 要格式化日期,如果你使用 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);
      

      希望对您有所帮助...

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-07-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多