2012-05-11 5 views
0

У меня есть jqGrid 4.3.1 с расширенным фильтром. некоторые из столбцов, которые являются логическими типами типа типа «Да/Нет», я показываю выпадающее меню, когда тип столбца выбран при создании новой расширенной строки фильтра. . Скажем, что столбец 2 является IsActive (Boolean), и когда он выбран, я отобразил выпадающее вместо текстового поля. код, который перекрывает расширенный фильтр jqGrid выглядит следующим образом:Диалоговое окно расширенного поиска jqGrid - столбец с раскрывающимся списком

var cols = grid.jqGrid("getGridParam", "colModel"); 
for (var i = 0; i < cols.length; i++) { 
if (cols[i].stype && cols[i].stype == "select" && cols[i].searchoptions && cols[i].searchoptions.buildSelect && $.isFunction(cols[i].searchoptions.buildSelect) 
&& !cols[i].searchoptions.dataUrl && !cols[i].searchoptions.value) { 
cols[i].searchoptions.value = cols[i].searchoptions.buildSelect(null); 
} 

Этот код используется для работы штраф в 4.3 версии (по одной версии до 4.3.1) Не знаю, что является причиной этой проблемы, но теперь моя выпадающие списки отображаются пустыми. Любая помощь ценится!

ответ

2

Вы не разместили код buildSelect, который вы используете, поэтому сложно сказать, почему сбой кода. В основном я не понимаю, почему у вас такой сложный код. Если вы знаете, что столбец IsActive имеет тип Boolean, и вы хотите отобразить его в диалоговом окне «Предварительный поиск» как раскрывающийся список с значениями «Да» и «Нет» и отображать его в сетке и при редактировании как флажок, вы можете сделать следующее:

{ name: "IsActive", template: myCheckboxTemplate } 

где mytemplateCheckbox можно определить как

var myCheckboxTemplate = { 
     formatter: "checkbox", align: "center", width: 20, 
     edittype: "checkbox", editoptions: { value: "1:0" }, 
     stype: "select", searchoptions: { sopt: ["eq", "ne"], value: "1:Yes;0:No" } 
    }; 

описанный подход я использую постоянно и она работает очень хорошо. Единственное отличие от вышеприведенного кода заключается в том, что вместо «checkbox» я использую форматирование "clickableCheckbox". Если вы хотите, вы можете скачать его с here.

+0

спасибо за ваш ответ. Я добавил новый вопрос, с которым я действительно борется. Htt: //stackoverflow.com/questions/10579864/jqgrid-column-selector-inline-rather-than-in-dialog – chugh97

+0

my build select function maps to function который имеет следующую реализацию: «Все: true: True; false: False»; – chugh97

+0

@ chugh97: Какой смысл получать статические данные с сервера (из URL 'dataUrl'), а затем конвертировать туда в select со статическими значениями? Кроме того, 'buildSelect' должен создавать HTML-фрагмент' 'вместо строки типа' ": All; true: True; false: False" 'используется как значение свойства value. Использование ': All'' внутри диалогового окна поиска также не очень хорошо. Все кажется очень странным ... – Oleg

Смежные вопросы