2010-10-14 12 views
8

¿Es posible agregar elementos de navegación al "buscapersonas superior" en un jqGrid? Y si es así, ¿cuál es la sintaxis para hacerlo?Adición de la navegación personalizada de jqGrid a la barra de herramientas superior

que tienen un fragmento de HTML en mi página que tiene este aspecto

<table id="mygrid"> 
</table> 
<div id="mygrid_pager"></div> 

Y luego una inicialización jqGrid que se ve algo como esto

$('#mygrid').jqGrid({ 
    ..., //full config string removed for brevity, 
    pager:jQuery('#mygrid'), 
    toppager:true 
}); 
$('#mygrid').jqGrid('navGrid', '#mygrid_pager'),{ 
    'add':false, 
    'del':false, 
    'edit':false, 
    'search':false, 
    'refresh':false, 
    'cloneToTop':true, 
}).navButtonAdd('',{...}); //config navbutton string for button removed for brevity 

un "top localizador" con el id de # mygrid_toppager se inserta automáticamente en la página, pero sus botones personalizados (que aparecen en el buscador de la parte inferior) no aparecen durante el viaje.

I see that there's a "cloneToTop" option incluido para el navGrid, pero su descripción parece confusa, y solo puedo asumir que la estoy usando mal.

Clona todas las acciones desde el buscapersonas inferior hasta el buscapersonas superior si está definido. Tenga en cuenta que el navGrid solo se puede aplicar al buscapersonas . La identificación del buscapersonas superior es una combinación de ID de red y "_toppager"

Mi comprensión de la opción es que tomará botones añadidos a la parte inferior del localizador, y clonar a la parte superior. Sin embargo, la descripción continúa diciendo "el navegadorGrid se puede aplicar solo al buscapersonas superior, lo cual no tiene ningún sentido ya que lo está clonando. Al serlo, claramente tengo un profundo malentendido sobre cómo es el API. se supone que debe ser usado.

Si alguien puede indicarme la dirección correcta (incluso para un ejemplo de trabajo en alguna parte), lo agradecería. Preferiría hacerlo a través de las API oficiales, a diferencia de to clever DOM manipulation, como se ve en otros lugares en StackOverflow.

Respuesta

17

OK, parece que he encontrado una manera que se parece mejor. la idea es utilizar navButtonAdd con el "#list_toppager_left" en lugar de "#pager".

Modifiqué el old answer, por lo tanto, ese botón personalizado se agrega en la parte superior de la barra de herramientas de navegación junto con un botón estándar. Se eliminarán otros elementos de la barra de herramientas de navegación superior. Los resultados se verán como alt text

Puede ver la demostración correspondiente en vivo here.

+0

Ah, creo que sigo ahora. En el interés de ayudar al próximo programador que aparece, no me di cuenta de que la opción "cloneToTop" solo copia los botones de cuadrícula predeterminados y ** no ** ningún botón personalizado agregado. Había intentado usar navButtonAdd en mygrid_toppager, no lo hice No se da cuenta de que debe dejar que la API sepa en qué lado de la cuadrícula lo quiere (izquierda/derecha) cuando se trata del toppager. –

+2

En su demostración (y lo que estoy experimentando actualmente), el estilo 'cursor: puntero' no se está aplicando al pasar el ratón sobre los iconos de navegación personalizados superiores. ¿Tienes alguna solución para esto? Muchas gracias! – icats

+0

@icats: ¡Es una muy buena pregunta! El problema está en CSS para '.ui-jqgrid .ui-jqgrid-pager .ui-pg-button', pero el toppager tiene la clase' ui-jqgrid-toppager' y no 'ui-jqgrid-pager' como el buscapersonas inferior . Entonces, para solucionar el problema uno debe agregar CSS '.ui-jqgrid .ui-jqgrid-pager .ui-pg-button {cursor: puntero}'. Es un error en 'ui.jqgrid.css' – Oleg

Cuestiones relacionadas