3

私はここで立ち往生しています - 生産に入る前に最後にすべきことです。

オラクルからの日付は次の形式です: "8/14/2012 10:46:48 AM"

私は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:46AM"

問題は、高度なフィルターを使用しようとすると機能しないことです。私の推測では、これを解決する方法について何か提案はありますか?

アップデート

オレグ、あなたが投稿したコードをコピーして変更を加えましたが、まだ何もありません。高度なフィルターを使用しています。ご協力ありがとうございます。本当に、本当に感謝しています。ドイツにビールを送れたらいいのに :o)

動作しないサンプル

全文付き作業サンプル

4

1 に答える 1

1

主な問題は、ローカルのフィルタリング/検索のために jqGrid で現在サポートされていないgフォーマットを使用していることだと思います。 代わりに formatnewformatを使用してみることができます。または、回答Hに記載されている修正を使用することもできます。

更新:デモformatter: 'date', formatoptions: { 'srcformat': 'ISO8601Long', 'newformat': 'm/d/Y - g:i A' }は、私が参照した修正を適用した後に高度な検索ダイアログを使用できることを示しています。10/04/2012 - 5:55 PMデモを試して、下の図で使用したのと同じデータ ( ) を入力してください。次の結果を確認する必要があります。

ここに画像の説明を入力

更新 2 : 別のデモを準備しているときに、内部のparseDate関数にもう 1 つのバグが見つかりました。問題は、関数の現在の実装がparseDate正しく機能するのは、解析する必要がある日付に指定された形式と同じ要素が含まれている場合のみです。たとえば、日付は形式10/04/2012を使用して正しく解析されません。'm/d/Y - g:i A'バグを修正するには、次の行を含めることができます

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

ループの本体の最初の行として。の修正版はこちらからjquery.jqGrid.src.js入手できます。

デモでは、 jqGrid の検索multipleSearch: trueオプションを使用します。結果として、次のような日付の間隔を指定できます

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

対応する検索ダイアログは下の図のようになり、日付の間隔でフィルタリングできます

ここに画像の説明を入力

于 2012-08-14T20:17:53.050 に答える