【问题标题】:Set the value to the datepicker from a json从 json 将值设置为 datepicker
【发布时间】:2026-01-06 09:10:01
【问题描述】:

我正在尝试使用下一个代码从商店将值设置为 Sencha Touch 下的 datepicker 组件:

    setRDDConfigs: function () {
    var store = Ext.getStore('OrderOptions');
    var cartHeaderRDD = this.getHeaderRDD();

    Ext.each(store.getRange(), function (record) {
        var r = record.getData().rdd;
        var formatted = c.Helper.formatSAPdate2Str(r);
        console.log(r); // here  20140807  for example
        console.log(formatted); // here 07-08-2014
        cartHeaderRDD.setValue(new Date(r)); // NAN
        //cartHeaderRDD.setValue(formatted); //NAN
    });
},

在视图中:

{
  xtype: 'CustomDatepicker',
  itemId: 'headerRDD',
  name: 'rdd',
  required: true,
  hidden: true
},

但它不能正常工作..我做错了什么??

谢谢!

【问题讨论】:

    标签: javascript json extjs sencha-touch


    【解决方案1】:

    试试下面的

    parsedDate = Ext.Date.parse(r, "Y-m-d");
    cartHeaderRDD.setValue(parsedDate);
    

    Ext.Date.parse 将字符串作为第一个输入,将格式作为第二个输入。 如果解析成功,则 Result 为 Date 对象,否则为 null。
    根据r中的格式更改格式。

    欲了解更多信息,请参阅http://docs.sencha.com/extjs/5.0.1/#!/api/Ext.Date-method-parse

    【讨论】:

    • 很高兴听到代码对您有用,请单击复选标记考虑accepting the answer。这向更广泛的社区表明您已经找到了解决方案,并为回答者和您自己提供了一些声誉。没有义务这样做。
    【解决方案2】:

    你需要像这样在 setValue 中设置日期:

     cartHeaderRDD.setValue(new Date());
    

    【讨论】:

    • 好的,它适用于当前日期,但实际上我需要从 json 中获取值,它不是当前日期。过去与当前日期就足够了..
    • 你可以这样做:cartHeaderRDD.setValue(new Date(r));
    • 我尝试了同样的例子,现在它可以工作了,但是在现场显示的是 NAN、NAN 等等..
    • 你能给我一个你正在设置的“r”的例子吗?
    • 好的。 cartHeaderRDD.setValue(new Date(formatted)); 应该做的工作。