Quiero agregar un botón a cada fila de mi cuadrícula que abrirá una nueva ventana. No vea esta característica en este control tan rico. Estar perdiendo algoAgregar un botón a una fila en jqgrid
Respuesta
Aquí hay un ejemplo, desde la página de demos jqGrid:
jQuery("#rowed2").jqGrid({
url:'server.php?q=3',
datatype: "json",
colNames:['Actions','Inv No','Date', 'Client', 'Amount','Tax','Total','Notes'],
colModel:[
{name:'act', index:'act', width:75,sortable:false},
{name:'id',index:'id', width:55},
{name:'invdate',index:'invdate', width:90, editable:true},
{name:'name',index:'name', width:100,editable:true},
{name:'amount',index:'amount', width:80, align:"right",editable:true},
{name:'tax',index:'tax', width:80, align:"right",editable:true},
{name:'total',index:'total', width:80,align:"right",editable:true},
{name:'note',index:'note', width:150, sortable:false,editable:true}
],
rowNum:10,
rowList:[10,20,30],
imgpath: gridimgpath,
pager: jQuery('#prowed2'),
sortname: 'id',
viewrecords: true,
sortorder: "desc",
gridComplete: function(){
var ids = jQuery("#rowed2").getDataIDs();
for(var i=0;i<ids.length;i++){
var cl = ids[i];
be = "<input style='height:22px;width:20px;' type='button' value='E' onclick=jQuery('#rowed2').editRow("+cl+"); ></ids>";
se = "<input style='height:22px;width:20px;' type='button' value='S' onclick=jQuery('#rowed2').saveRow("+cl+"); />";
ce = "<input style='height:22px;width:20px;' type='button' value='C' onclick=jQuery('#rowed2').restoreRow("+cl+"); />";
jQuery("#rowed2").setRowData(ids[i],{act:be+se+ce})
}
},
editurl: "server.php",
caption:"Custom edit " }
).navGrid("#prowed2",{edit:false,add:false,del:false});
También puede hacerlo con un custom formatter.
que sólo permitirá a los botones para guardar, editar, lo que quiero es para disparar una función que abre la nueva ventana. Supongo que simplemente sobreescribo .saveRow o .EditRow –
Agregas un botón de la misma manera, pero pones un método de JavaScript diferente en el clic. No, no anula saveRow o editRow. ¡Eso rompería la edición! –
No olvide agregar en la configuración de jqgrid autoencode: false – Alonzzo2
la respuesta más alta actual coloca el código de botón personalizado dentro de loadComplete. debería ser gridComplete. La API probablemente ha cambiado desde que se contestó la pregunta.
Esto example podría ser útil. Consulte esta página wiki y this answer de Oleg.
sus ejemplos están relacionados con la barra de navegación. El investigador pidió un botón en una fila de datos. –
@lspcity: oops, mi mal. – understack
Estoy usando una jqgrid para mostrar una lista de contactos. Tengo una columna llamada 'Role' con un botón que dice 'Definir', de modo que puede hacer clic en ella y redefinir el rol de ese contacto como primario, secundario, de ventas u otro.
Originalmente, el elemento de botón estaba siendo enviado a la celda de cuadrícula a través de XML, donde $ rowid fue el id de la fila (PHP):
<cell><![CDATA[<button data-idx='{$rowid}' class='contact_role_button btn' title='Define Role...'>Define</button>]]></cell>
Esto funcionó bien hasta que me puse autoencode: true
en la parrilla. Con esta opción establecida en verdadero, la columna simplemente mostraba el html.
La respuesta de Craig mostró un comportamiento similar, pero una ligera variación de ella hizo el truco. Yo pensé en compartir:
gridcomplete: function() {
var ids = $grid.getDataIDs();
for (var i=0;i<ids.length;i++){
var cl = ids[i],
button = '<button data-idx="'+cl+'" class="contact_role_button btn" title="Define Role...">Define</button>';
if (cl.substr(0,2) !== "jq") {
$('#'+cl).find('td[aria-describedby="list_role"]').html(button);
}
}
}
En otras palabras, el método setRowData no funcionó con autoencode define como true, pero el DOM se puede manipular a voluntad dentro del evento gridcomplete.
en colModel, puede dar formato utilizando formateador siguiendo código
formatter:function (cellvalue, options, rowObject) {
return "<input type='button' value='somevalue' onclick='some_function'\>";
}
IMO, esta es la respuesta correcta. – Chris
- 1. Cómo agregar un botón a cada fila de una lista?
- 2. Cómo editar o agregar una nueva fila en jqGrid
- 3. jQGrid, ¿cómo agregar una nueva fila dentro de la cuadrícula, no a través de un modal?
- 4. ¿Volver a cargar una sola fila jqGrid?
- 5. Agregar botón a la barra de herramientas superior jqGrid
- 6. Jqgrid: navegación basada en la fila seleccionada
- 7. Cómo establecer valores predeterminados si se agrega una fila usando el botón agregar en línea en jqgrid
- 8. Botón Agregar a UITableViewCell
- 9. Botón de eliminación personalizada en jqGrid
- 10. jqGrid fila fondo alterno
- 11. Agregar un botón a WGD DataGrid
- 12. Cómo realizar una acción en jqGrid después de agregar una nueva fila
- 13. JQgrid: valor específico de una fila seleccionada
- 14. Agregar un botón a MediaController
- 15. JQGrid Programemente selecciona cuadrícula Fila
- 16. jqGrid & MVC3 - Agregar la validación del modelo
- 17. Agregar botón a la cuadrícula en ExtJs
- 18. jqGrid deshabilitar resaltado de fila
- 19. ¿Cómo agregar una nueva fila a datagridview?
- 20. JQgrid establecer altura de fila
- 21. ¿Cómo agregar una fila a una TableViewSection en Titanium?
- 22. Agregar un evento onclick a una fila de la tabla
- 23. cómo mantener la fila actual en jqgrid
- 24. Cómo agregar información sobre herramientas a jqgrid
- 25. Objeto de fila jqGrid en onSelectRow
- 26. jqGrid agregar nueva columna
- 27. Cómo establecer valores de campo predeterminados para agregar formulario en jqgrid desde la fila actual
- 28. Agregar un botón a Winforms DataGridView
- 29. Agregar un botón Actualizar a jQuery Datatable
- 30. ¿Agregar una nueva fila al marco de datos, en un índice de fila específico, sin agregar?
http://jsfiddle.net/russcam/VxpHf/ – understack