Json dgrid和DateTextBox

Json dgrid和DateTextBox,json,dojo,dgrid,Json,Dojo,Dgrid,我正在尝试使用dgrid OnDemandGrid将dijit.form.DateTextBox用作编辑器。数据通过JSON提供给OnDemandGrid。起初,我试图从MySQL数据库中以原始格式输入日期(例如,YYYY-MM-DD HH:MM:SS),但是当DateTextBox似乎无法解析该字符串时,我尝试只输入日期(例如,2012-11-20)。然而,这也未能奏效 所以,我的主要问题是让DateTextBox处理日期信息。第二个问题是如何处理时间信息,因为DateTextBox不能编辑时

我正在尝试使用dgrid OnDemandGrid将dijit.form.DateTextBox用作编辑器。数据通过JSON提供给OnDemandGrid。起初,我试图从MySQL数据库中以原始格式输入日期(例如,
YYYY-MM-DD HH:MM:SS
),但是当DateTextBox似乎无法解析该字符串时,我尝试只输入日期(例如,
2012-11-20
)。然而,这也未能奏效

所以,我的主要问题是让DateTextBox处理日期信息。第二个问题是如何处理时间信息,因为DateTextBox不能编辑时间。我目前的方法是,当我拆分SQL日期字符串时,我将时间作为dijit.form.TimeTextBox的一个单独列提供给dgrid。这似乎是一个混乱的解决方案,所以我愿意接受建议

这是我的网格代码:

var grid = new declare([OnDemandGrid, Editor, Keyboard, Selection])({
    store: store,
    query: {aid: "1900", action: "objectListGenerator2" },
    bufferRows: 40,
    loadingMessage: "Loading...",
    columns: [
        {field: "oid", label: "Object ID"},
        Editor({field: "startDate", name: "Start Date", editorArgs: { selector: 'date', datePattern: 'yyyy-mm-dd', locale: 'en-us' }}, DateTextBox, "click"),
        Editor({field: "startTime", name: "Start Time"}, TimeTextBox, "click"),
        Editor({field: "endDate", name: "End Date"}, DateTextBox, "click"),
        Editor({field: "endTime", name: "End Time"}, TimeTextBox, "click"),
        {field: "endDateOid", label: "End OID"}
    ],
}, "grid");
以下是我的JSON源代码的示例字符串:

[{"content":"2012-11-20 18:12:00","oid":"2112","author":"","endDateOid":"2113","group":"","endTime":"17:59:00","poid":"0","id":null,"startTime":"18:12:00","gmt":"2012-11-22 00:12:43","name":"The Windows 8 Disaster Rolls On","paid":"1900","endDate":"2012-11-21","type":"startDate","startDate":"2012-11-20","cache":"","cachedate":"0000-00-00 00:00:00"},
{"content":"2013-01-01 17:59:00","oid":"2114","author":"","endDateOid":"2115","group":"","endTime":"16:59:00","poid":"0","id":1,"startTime":"17:59:00","gmt":"2012-11-22 00:14:49","name":"The Windows 8 Disaster Rolls On","paid":"1900","endDate":"2013-01-02","type":"startDate","startDate":"2013-01-01","cache":"","cachedate":"0000-00-00 00:00:00"}]

正如我在评论中指出的,如果我从列定义中删除“click”,从而允许立即创建DateTextBox,则会显示正确的日期。如果以后添加DateTextBox,我不知道为什么数据不能正确解析,但至少创建它会立即产生一个可行的结果。

您是以编程方式还是声明方式创建它的?您能否以编程方式提供一个。明天我会把代码放到Fiddle上,但现在我把它贴在上面了。谢谢你的回复!DateTextBox出现了吗?一个不顾一切的尝试可能是将
editorArgs.datePattern
yyyy-mm-ss
更改为
yyy-mm-ss
(根据要求的ISO8601/RFC3339格式)。无论如何,访问
日期文本框
属性之类的操作需要使用本机JavaScript
日期
-对象来完成。但我不认为这是问题所在,正如
dgid
文档所说,DateTextBox可以用作单元格的编辑器(如您所知;)。。。难:/谢谢,@nozzleman!我试过更改格式,但似乎没有用。然而,我发现了一些东西:如果我从列定义中删除“click”(从而允许立即创建
DateTextBox
),就会显示正确的日期。你有没有想过为什么会这样?顺便说一句,我创建了一个Fiddle,但是dgrid似乎不是从它提供的Dojo的CDN版本加载的:。谢谢你的帮助!