Javascript KendoUI网格:日期选择器返回错误格式的自定义编辑表单

Javascript KendoUI网格:日期选择器返回错误格式的自定义编辑表单,javascript,kendo-ui,kendo-grid,Javascript,Kendo Ui,Kendo Grid,我被KendoUI网格卡住了。到目前为止,设置工作如期进行。我创建了一个包含5个条目的自定义数据源,所有条目都包含标题、描述和值。值可以不同,可以是:布尔值、数字、文本、日期或时间 使用编辑弹出窗口的自定义KendoTemplate,我可以根据值获得弹出窗口以显示正确的字段类型: <!-- Datefield --> #if($.isNumeric(value) == false && value.match(/^\d{2}([.\/-])\d{2}\1\d{4}$/

我被KendoUI网格卡住了。到目前为止,设置工作如期进行。我创建了一个包含5个条目的自定义数据源,所有条目都包含标题、描述和值。值可以不同,可以是:布尔值、数字、文本、日期或时间

使用编辑弹出窗口的自定义KendoTemplate,我可以根据值获得弹出窗口以显示正确的字段类型:

<!-- Datefield -->
#if($.isNumeric(value) == false && value.match(/^\d{2}([.\/-])\d{2}\1\d{4}$/)) {#
<li>
    <label>Waarde</label>
    <input id="datepicker" data-bind="value:value" style="width: 40%;" />
</li> 
#} else if($.isNumeric(value) == false && value.match('([01]?[0-9]|2[0-3]):[0-5][0-9]')) {#
<li>
    <label>Waarde</label>
    <input id="timepicker" data-bind="value:value" style="width: 40%;" />
</li> 
<!-- Yes/No Radio button if value is J(=Yes) or N(=No) -->    
#} else if (value == "J" || value == "N") {#
<li>
    <label>Waarde</label>
    <input type="radio" name="value" data-bind="checked:value" value="J" /> Ja
    <input type="radio" name="value" data-bind="checked:value" value="N" /> Nee
</li>                   
<!-- If the value is Numeric then show a numeric textbox -->
#} else if($.isNumeric(value)) {#                                           
<li>
    <label>Waarde</label>
    <input type="text" data-bind="value:value" data-role="numerictextbox" style="width:50%;" />
</li>                   
<!-- Else: textfield for the value -->
#}else {#                                           
<li>
    <label>Waarde</label>
    <input type="text" data-bind="value:value" class="k-textbox" />
</li>  
#}#         
然而,有一件事出了问题。与我尝试的不同,编辑表单发布的返回值不包含日期,如
19-11-2013
,而是包含日期,如
19-11-2013T00:00:00.000Z
。至少脚本的基础工作正常,但由于这种格式,编辑后该字段被识别为“时间”,而不是“日期”:我只需要dd-mm-yyy通知和HH:ii时间

我已经搜索了KendoForums、Google和StackOverflow,但我似乎找不到有同样问题的人。可能是因为我使用了错误的搜索关键字。。不管是什么情况:有没有人经历过同样的问题,或者谁知道解决方案是什么

//编辑:添加一点内容以使问题更清楚(我希望):

  • 创作肯多格里德作品
  • 将自定义模板表单绑定到编辑弹出窗口同样有效
  • 首先,所有字段都显示正确的类型(bool/numeric/date/time/text)
  • 在编辑弹出窗口内,日期格式正确,因为我需要id
  • 保存数据时出错,弹出窗口返回数据源的值包含YYYY-mm ddTHH:ii:ss.000Z格式,而不是dd-mm-YYYY格式

  • 剑道UI将日期存储为JavaScript
    Date
    对象,因此它总是以它的形式存储(无论如何显示或输入)

    在服务器上接受此格式,或者在
    数据源.transport的
    创建
    更新
    功能中将其转换为
    dd-mm-YYYY


    您可以在和或中实现函数。

    是的,我注意到了日期对象。这种方法的唯一障碍是我无法确定是日期还是时间字段需要更新。有什么想法吗?但你知道你想储存什么,不是吗?数据类型是知道是日期还是时间的唯一方法吗?为什么不使用两个不同的字段?目前这是唯一的方法是。原因是输入来自另一个系统,第二个字段不是选项(至少……可能是最后一个选项)…我在数据中存储了一个值类型字符串。别无选择。谢谢你的帮助。网格中的格式化问题很简单:我完全忘记了我可以使用PHP数据源更改格式!
    if($('#datepicker').length > 0) {
        console.log('datefield');
        $("#datepicker").kendoDatePicker({
            format: "dd-MM-yyyy",
            parseFormats: ["dd-MM-yyyy"]    
        }); 
    }
    if($('#timepicker').length > 0) {
        console.log('timefield');
        $("#timepicker").kendoTimePicker({
            timeFormat: "HH:mm" 
        }); 
    }