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