El botón Agregar barra de herramientas se usa para agregar una nueva fila a jqgrid. Agregar formulario que aparece contiene todos los archivos vlaues vacíos. ¿Cómo establecer valores de campo de formulario de adición a partir de valores de columna de la fila que era actual/seleccionada cuando se emitió el comando de agregar? json datos remotos se utilizan. O, si esto es más simple, ¿cómo llamar al método del servidor para pasar la fila actual/seleccionada para recuperar los valores predeterminados para agregar el formulario del servidor?Cómo establecer valores de campo predeterminados para agregar formulario en jqgrid desde la fila actual
jqgrid contiene también columnas ocultas. Si es posible, los valores de columnas ocultas de la fila actual también se enviarán para agregar controlador si se guarda el formulario de agregar.
actualización
He intentado utilizar Oleg gran sugerencia mediante el uso de
afterShowForm: function(formID) {
var selRowData,
rowid = grid.jqGrid('getGridParam', 'selrow');
if (rowid === null) {
// todo: how to cancel add command here
alert('Please select row');
return;
}
selRowData = grid.jqGrid('getRowData', rowid);
if (selRowData === null) {
alert('something unexpected happened');
return;
}
$('#' + 'Baas' + '.FormElement', formID).val(selRowData.Baas);
}
aplicación mantiene añadir forma abierta después de guardar. Después del primer guardado, el campo Baas está vacío. Parece que el evento afterShowForm se ejecuta solo una vez, no después de cada guardado. ¿Cómo arreglar esto para que se puedan agregar varias filas con valores predeterminados sin cerrar el formulario agregar? Cómo cancelar o no permitir el comando Agregar si no hay una fila seleccionada?
Gracias. En algunos casos, es necesario establecer valores predeterminados para los campos de autocompletado de jqueryUI utilizados para la entrada de claves externas desde tablas de búsqueda grandes.autocompletar se implementa como elemento de edición personalizado. Confirme, ¿es la mejor forma de utilizar beforeShowForm en este caso? ¿Deberíamos usar beforeShowForm en otros campos también debido a esto para evitar mezclar dos métodos para establecer el valor predeterminado? ¿Dónde encontrar el código de muestra que establece el valor predeterminado del campo de autocompletar jqueryui en forma de agregar? – Andrus
muestra de código en la muestra de respuesta llama 'grid.jqGrid ('getGridParam', 'selrow');' dos veces – Andrus
@Andrus: No puedo decir qué camino es * el mejor * uno. Puede depender de muchos parámetros. jQuery UI Autocompletar 'fuente' le brinda muchas posibilidades de cómo puede obtener los datos del servidor, por lo que debe elegir cuál es la mejor * para su entorno *. Acabo de describir dos formas en que ambos pueden ser implementados correctamente. – Oleg