0

dgridOnDemandGridをdijit.form.DateTextBoxをエディターとして使用できるようにしようとしています。データはJSONを介してOnDemandGridに送られます。最初は、MySQLデータベースから生の形式で日付をフィードしようとしていましたが(例YYYY-MM-DD HH:MM:SS)、DateTextBoxがその文字列を解析できないように見えたときは、日付だけをフィードしようとしました(例2012-11-20)。ただし、これも機能しませんでした。

したがって、私の主な問題は、DateTextBoxに日付情報を処理させることです。DateTextBoxは時刻を編集できないため、2番目の問題は時刻情報の処理方法です。私の現在のアプローチは、SQLの日付文字列を分割するときに、dgridにdijit.form.TimeTextBoxの個別の列として時間をフィードすることです。これは厄介な解決策のように思われるので、私は提案を受け入れています。

これが私のグリッドコードです:

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"}]
4

1 に答える 1

0

コメントで述べたように、列定義から「クリック」を削除して、DateTextBoxをすぐに作成できるようにすると、正しい日付が表示されます。DateTextBoxを後で追加した場合にデータが適切に解析されない理由はわかりませんが、少なくともデータを作成するとすぐに実行可能な結果が得られます。

于 2013-01-03T04:05:26.423 に答える