2012-08-14 148 views
3

我被困在這裏 - 最後一件事情要在生產前完成。JQGrid DateTime高級篩選器

從甲骨文未來的日期爲以下格式:「2012年8月14日上午10點46分48秒」

我使用的jqGrid的以下內容:

{ name: 'CreationDate', index: 'CreationDate', formatter: 'date', formatoptions: { 'srcformat': 'ISO8601Long', 'newformat': 'm/d/Y - g:i A' }, sorttype: 'date', width: 95, align: 'right', resizable: false }, 

我有以下顯示在網格上:「08/14/2012 - 10:46 AM」

問題是,當我嘗試使用高級過濾器時,它不起作用。我的猜測是因爲時間關於如何解決這個問題的任何建議?

UPDATE

奧列格,我複製你貼你的改動,仍然一無所獲的代碼。我正在使用高級過濾器。感謝您的幫助,我真的很感激。我希望我能送你一些啤酒德國:O)

Not working sample

Working sample with full text

+0

更多信息的時間間隔進行過濾,json數據顯示數據爲「2012-08-14T10:46:48」。如果我在過濾器上輸入2012-08-14,它過濾得很好,但如果我輸入08/14/201它不 – user1409155 2012-08-14 16:33:57

回答

1

我認爲主要的問題是,你使用的newformatg格式,目前不被jqGrid的支持對本地過濾/搜索。您可以嘗試使用H格式。或者,您可以使用the answer中描述的修復程序。

已更新The demo顯示在應用我引用的修復程序後,可以使用高級搜索對話框和formatter: 'date', formatoptions: { 'srcformat': 'ISO8601Long', 'newformat': 'm/d/Y - g:i A' }。您可以嘗試演示並輸入我在以下圖片中使用的相同數據(10/04/2012 - 5:55 PM)。你必須看到以下結果:

enter image description here

更新2:在你的另一個演示的準備,我發現在內部parseDate功能多了一個錯誤。問題是parseDate函數的當前實現只有在需要解析的日期包含與指定格式相同的元素時才能正確工作。例如,使用'm/d/Y - g:i A'格式的日期10/04/2012將被錯誤解析。修復bug可以包括行

if(typeof date[k] === "undefined") { continue; } 

作爲the loop正文的第一行。固定版本jquery.jqGrid.src.js你可以得到here

在演示中,我用multipleSearch: true選項jqGrid searching。其結果是一個可以指定日期的像

10/04/2012 <= x <= 10/05/2012 

區間對應的搜索對話框就會像下面的圖片,你就可以按日期

enter image description here

+0

奧列格,感謝您的答覆,但仍然無法正常工作。我將格式更改爲H {'srcformat':'ISO8601Long','newformat':'m/d/Y - H:i'),但沒有幫助過濾器只能用於輸入數據來在json「2012-08-14」上。如果我試圖實現其他答案,那麼我必須輸入所有內容,包括時間。你認爲我會這樣做的任何其他方式?再次感謝。 – user1409155 2012-08-14 21:13:40

+0

無論如何要爲此日期列編寫自定義過濾器嗎? – user1409155 2012-08-15 14:27:42

+0

@ user1409155:對不起,但在應用我引用的修復程序後,在數據過濾中我看不到任何問題。我爲你演示了這個演示,演示了所有工作都正常。請參閱** UPDATED **部分我的答案。 – Oleg 2012-08-15 16:32:14