Можно ли сделать так, чтобы окно поиска jqGrid оставалось на странице?
Прямо сейчас я должен щелкнуть значок поиска jqGrid, чтобы открыть окно поиска. Я хотел бы, чтобы окно поиска всегда было открыто над сеткой (а не всплывающим окном). Я не вижу ничего в их демонстрациях, но надеюсь, что кто-то сделал это или знает как.
3 ответа
Самый простой способ сделать то, что вам нужно, это
var grid = $("#list"),
prmSearch = {multipleSearch:true,overlay:false};
grid.jqGrid({
// all jqGrid parameters
});
// next line is optional
grid.jqGrid('navGrid','#pager',
{add:false,edit:false,del:false,search:true,refresh:true},
{},{},{},prmSearch);
// create the searching dialog
grid.searchGrid(prmSearch);
// find the div which contain the searching dialog
var searchDialog = $("#fbox_"+grid[0].id);
// make the searching dialog non-popup
searchDialog.css({position:"relative", "z-index":"auto"});
Вы можете увидеть результаты вживую здесь. Чтобы убрать границу над диалоговым окном поиска и сеткой, вы можете сделать следующее:
searchDialog.addClass("ui-jqgrid ui-widget ui-widget-content ui-corner-all");
searchDialog.css({position:"relative", "z-index":"auto", float:"left"})
var gbox = $("#gbox_"+grid[0].id);
gbox.before(searchDialog);
gbox.css({clear:"left"});
Он перемещает диалоговое окно поиска за пределы div "gbox_list".
Конечное решение вы можете увидеть здесь.
Это моя исправленная версия для jqgrid > 4.3
var searchDialog = $("#searchmodfbox_"+grid[0].id);
searchDialog.addClass("ui-jqgrid ui-widget ui-widget-content ui-corner-all");
searchDialog.css({position:"relative", "z-index":"auto", "float":"left"})
var gbox = $("#gbox_"+grid[0].id);
gbox.before(searchDialog);
gbox.css({clear:"left"});
Вот самый простой способ, который может помочь кому-либо заставить окно поиска сетки jq оставаться на странице (всплывающим) все время, пока не будет нажата кнопка "Закрыть".
$("#grid").searchGrid({ closeAfterSearch: false } );
$("#grid").searchGrid({ closeOnEscape: false } );