У меня есть таблица jqGrid со многими столбцами. Поиск в сетке производится с помощью панели инструментов фильтра. Для большинства из них поиск - это простой оператор по умолчанию. Для одного столбца datetime мне нужны разные операторы и селектор datepicker. Я добавил dataInit
инициализацию datepicker в searchoptions
, необходимые операторы в searchoptions.sopt
. Чтобы показать эти операторы, я установил для searchOperators значение true. Так что для этой колонки все в порядке. У меня есть datepicker с всплывающим окном выбора оператора. Но для всех остальных столбцов слева от него отображается значок оператора по умолчанию. Это раздражает, поскольку оператор установлен по умолчанию, и пользователь не может его изменить. Так есть ли возможность скрыть их с помощью jqGrid API? Насколько я мог видеть, я мог скрыть это только с помощью собственного кода:
Мне нужно проверить мою модель столбца и после рендеринга сетки (может быть в loadComplete
) для всех столбцов, в которых есть пустые sopt
или sopt.length == 0
, чтобы удалить селектор оператора. Или добавьте класс CSS, который его скрывает. Не уверен, какое из этих решений лучше (скрыть или удалить), потому что удаление может нарушить некоторую логику, а скрытие может повлиять на расчет ширины. Вот пример того, что я имею в виду на скрипке
function fixSearchOperators()
{
var columns = jQuery("#grid").jqGrid ('getGridParam', 'colModel');
var gridContainer = $("#grid").parents(".ui-jqgrid");
var filterToolbar = $("tr.ui-search-toolbar", gridContainer);
filterToolbar.find("th").each(function()
{
var index = $(this).index();
if(!(columns[index].searchoptions &&
columns[index].searchoptions.sopt &&
columns[index].searchoptions.sopt.length>1))
{
$(this).find(".ui-search-oper").hide();
}
});
}
Есть ли у кого-нибудь идеи получше?