あなたはjqGridで新しいフィルタモジュールの導入以来、存在している説明した動作のための私のcolModelです。デフォルトの動作はちょっと複雑すぎて、表の "デフォルト"の列にはthe options of searchingから記述できません。あなたはjqGridのソースコードを調べると
次two linesを見つける:
numopts : ['eq','ne', 'lt', 'le', 'gt', 'ge', 'nu', 'nn', 'in', 'ni'],
stropts : ['eq', 'ne', 'bw', 'bn', 'ew', 'en', 'cn', 'nc', 'nu', 'nn', 'in', 'ni'],
ですから、jqGridのいくつかの列にsearchoptionsでsopt
プロパティを定義している場合は、対応する比較演算が表示されます。デフォルトを設定することができます
sorttype
の値をデフォルトの'string'
以外に定義する場合は、数値オプションが比較操作として使用されます。定義されていないsorttype
の場合のみ、定義されていないsearchoptions.sopt
および検索オプションprmSearch
の未定義のオプションnavGridの場合は、記述した動作が使用されます。
ですから、フォームの例navGrid
のために使用することができます
$('#grid').jqGrid('navGrid', '#pager',
{refreshstate: 'current', add: false, edit: false, del: false}, {}, {}, {},
{sopt: ['eq', 'ne', 'lt', 'le', 'gt', 'ge', 'bw', 'bn', 'ew', 'en', 'cn', 'nc', 'nu', 'nn', 'in', 'ni']}
);
別の可能性は、「日付」欄に直接searchoptions.sopt
を定義することです:あなたはすべての操作を含めることができ
{name: 'date', index: 'date', width: 90, align: "center", editrules: {required: true},
searchoptions: {sopt: ['eq', 'ne', 'lt', 'le', 'gt', 'ge']}}
内部のデータのタイプに応じて、対応する列に対応します。
本当にお勧めするのはcolumn templatesです。顧客のために開発したプロジェクトでは、1つのJavaScriptファイルで定義します。これは、すべてのページにさまざまなタイプのデータ用に異なるテンプレートを含めるものです。例
var initDate = function (elem) {
$(elem).datepicker({
dateFormat: 'dd-M-yy',
autoSize: true,
changeYear: true,
changeMonth: true,
showButtonPanel: true,
showWeek: true
});
},
dateTemplate = {width: 80, align: 'center', sorttype: 'date',
formatter: 'date', formatoptions: { newformat: 'm/d/Y' }, datefmt: 'm/d/Y',
editoptions: {date: true, dataInit: initDate },
searchoptions: { sopt: ['eq', 'ne', 'lt', 'le', 'gt', 'ge'], dataInit: initDate }};
のために、あなたが
{name:'date', index:'date', editrules: {required: true}, template: dateTemplate }
おかげオレグのようにそれを使用することができ
dateTemplate
変数を定義した場合!私は** date **カラムのために 'searchoptions.sopt'を直接定義することを決めました。よりシンプルで簡単です。私はゆっくりと列テンプレートを試しています。再度、感謝します。 :) – genpet@genpet:あなたは大歓迎です! – Oleg