У меня есть jqGrid с «multipleSearch = true» и «multipleGroup = true», чтобы разрешить сложный поиск.
У меня установлен «стиль» для столбцов (в моем случае это включает «дату»), "text", "integer" и "currency").
Я также предоставил функции dataInit для плагинов DatePicker и AutoComplete для столбцов "date" и "text" соответственно.
Когда я открываю диалог поиска, вызывается функция автозаполнения «dataInit», но не функция «DataInit» DatePicker.
Это происходит потому, что функция «dataInit» запускается при создании нового фильтраи основан на «типе» первого столбца.
(Я подозреваю, что он срабатывает, когда пользователь выбирает столбец из выпадающего списка в диалоге поиска.)
Есть лиспособ отображения DatePicker, когда пользователь хочет выполнить поиск в поле «date» и отключить его для других «стилей» поля?
Я включил соответствующие фрагменты кода ниже:
var DatePickerCfg = { id: 'DatePicker',dateFormat: 'dd/mm/yy',minDate: new Date(1990,0,1),maxDate: new Date(2099,12,31),showOn: 'focus' };
var AutoCompleteCfg = { id: 'AutoComplete',source: '' };
var formatoptions = {};
var searchoptions = {};
else if (Field['Type'] == '[datetime]')
{
stype = 'date';
formatoptions = {srcformat: 'Y-m-dTH:i:s', newformat: 'd/m/Y g:i:s A'};
searchoptions = {sopt: ['eq','ne','lt','le','gt','ge'], dataInit: function(el) {setTimeout(function() {jQuery(el).datepicker(DatePickerCfg);}, 200);}};
}
else {searchoptions = {sopt: ['eq','ne','lt','le','gt','ge','bw','bn','ew','en','cn','nc'], dataInit:function(el) {setTimeout(function() {jQuery(el).autocomplete(AutoCompleteCfg);},200);}};}
colModel.push({name:Field['Field'], index:Field['Field'], align:Field['Align'], sortable:true, stype:stype, formatter:stype, formatoptions:formatoptions, searchoptions:searchoptions});