2011-04-16 19 views
5

Ahora mismo, tengo que hacer clic en el ícono jqGrid Search para abrir el cuadro de búsqueda. Lo que me gustaría hacer es tener el cuadro de búsqueda abierto encima de la grilla (no como una ventana emergente) en todo momento. No veo nada en sus demos, pero espero que alguien lo haya hecho o sepa cómo hacerlo.Posible hacer cuadro de búsqueda jqGrid ¿Permanezca en la página?

+0

Probablemente la [barra de herramientas de búsqueda] (http://www.trirand.com/jqgridwiki/doku.php?id=wiki:toolbar_searching) ¿es mejor? ¿Qué tipo de búsqueda necesitas? ¿Utiliza la versión 4.0.0 de jqGrid con una nueva búsqueda de estilo? Uno puede implementar lo que quiera, pero no estoy seguro de que al final haya querido decir algo más. En la mayoría de los casos incluyo dos búsquedas en la grilla: la barra de herramientas busca una búsqueda intuitiva rápida y [búsqueda avanzada] (http://www.trirand.com/jqgridwiki/doku.php?id=wiki:advanced_searching) para construir más filtros complejos. – Oleg

+0

Estamos utilizando la búsqueda avanzada jqGrid 3.8.2. La búsqueda en la barra de herramientas no nos permite tener rangos para la misma columna (no lo creo); de lo contrario, ese podría ser el camino correcto a seguir. –

Respuesta

7

La forma más sencilla de hacer lo que necesita es

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"}); 

se puede ver los resultados en vivo here. Para hacer de distancia de la frontera sobre el diálogo de búsqueda y la red que puede hacer, además, lo siguiente:

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"}); 

Se mueve el exterior de diálogo en busca de "gbox_list" div.

La solución final se puede ver here.

+0

Bueno, en este caso 'onSearch' no se llama – Hunt

+0

@Hunt: No estoy seguro de a qué se refiere. La demostración de mi respuesta usa jqGrid 3.8.2. El módulo de filtrado * se reescribe por completo * más adelante. Entonces, si usa la versión actual de jqGrid, debe usar otro código. Por ejemplo, desde [aquí] (http://stackoverflow.com/a/10131596/315935). La versión actual de jqGrid tiene muchos más cambios en el módulo de búsqueda. En cualquier caso, si tiene un problema donde no se llama a 'onSearch', debe publicar la URL en la demostración correspondiente. – Oleg

+0

Tengo 4.4.5 jqGrid. Utilizo tanto la búsqueda en la barra de herramientas como el diálogo emergente. Personalicé ligeramente para mostrar iconos en la región de título superior y estoy buscando cómo iniciar el cuadro de diálogo de búsqueda fbox_ desde mi icono personalizado – bkwdesign

1

Aquí está la forma más simple que podría ayudar a alguien a mantener el cuadro de búsqueda de cuadrícula jq en la página (como ventana emergente) todo el tiempo hasta que se haga clic en cerrar.

$("#grid").searchGrid({ closeAfterSearch: false }); 
$("#grid").searchGrid({ closeOnEscape: false }); 
2

Ésta es mi versión fija para 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"}); 
Cuestiones relacionadas