Ver Mensaje Individual
  #7 (permalink)  
Antiguo 14/08/2012, 03:20
partusano
 
Fecha de Ingreso: noviembre-2011
Mensajes: 4
Antigüedad: 13 años
Puntos: 0
Respuesta: Jqgrid Guardar cambios en la base de datos

Hola manuelle, disculpa la demora, pero recien veo el mensaje, espero hallas encontrado la solucion, pero dejo mi respuesta por si a alguien le sirve

para cerrar la ventana del formulario despues de retornar de la pagina del servidor, es muy sencillo debes configurar la opcion closeAfterAdd o closeAfterEdit dependiendo del caso, en tu ejemplo seria:


Código:
jQuery(document).ready(function(){

    jQuery("#crud").jqGrid({ 
        url:load.php, 
        editurl: edit.php,
        datatype: "json", 
        colNames:['Identificador','Texto'], 
        colModel:[ 
            {name:'idmsg',index:'idmsg', width:200, editable:true, sorttype:'string'}, 
            {name:'textomsg',index:'textomsg', width:300,editable:true}, 
        ], 
        rowNum:10, 
        rowTotal: 50, 
        rowList:[10,20,30], 
        pager: '#pcrud', 
        sortname: 'id', 
        loadonce: true,
        viewrecords: true, 
        sortorder: "desc", 
    }); 

    //jQuery("#crud").jqGrid('navGrid','#pcrud',{}); 
    
    jQuery("#crud").jqGrid('navGrid','#pcrud',
        {}, //options
        {height:350,reloadAfterSubmit:true,closeAfterEdit:true}, // edit options
        {height:350,reloadAfterSubmit:true,closeAfterAdd:true}, // add options
        {reloadAfterSubmit:true}, // del options
        {} // search options
        );
});



por tu otra pregunta, si necesitas validaciones clasicas, jqgrid te provee de unos metodos para poder hacerlas en el lado del cliente antes de enviarla al servidor, definiendo unas reglas en tu colmodel

en tu caso podrias poner

Código:
colModel:[ 
            {name:'idmsg',index:'idmsg', width:200, editable:true,sorttype:"int",editable:true,editrules :{required:true,number:true}}, //aqui indicamos que es un parametro que debe ingresar obligatoriamente (required:true) y que debe ser de tipo numerico (number:true)
            {name:'textomsg',index:'textomsg', width:300,editable:true}, 
        ],

tienes muchas opciones, por ejemplo puedes poner

email:true, url:true, minValue:50, maxValue:100, date, etc...

incluso puedes hacer una validacion con una funcion javascript tuya, con esta opcion del editrule
custom:true, custom_func:mifuncion,

algo asi
Código:


<script>
function mifuncion(value, colname) {
if (value < 0 || value >20) 
   return [false,"Please enter value between 0 and 20"];
else 
   return [true,""];
}
jQuery("#grid_id").jqGrid({
...
   colModel: [ 
      ... 
      {name:'idmsg',index:'idmsg', width:200, editrules:{custom:true, custom_func:mifuncion}, editable:true },
      ...
   ]
...
});
</script>

puedes ver la documentacion completa en esta pagina

[URL="http://www.trirand.com/jqgridwiki/doku.php?id=wiki:common_rules&s[]=editrules"]http://www.trirand.com/jqgridwiki/doku.php?id=wiki:common_rules&s[]=editrules[/URL]

busca por las opciones de editrules


si ya no hay caso y necesitas hacer la validacion en el servidor


busca en la misma pagina por el evento afterSubmit



esta pagina tambien es muy buena te la recomiendo
[URL="http://trirand.com/blog/jqgrid/jqgrid.html"]http://trirand.com/blog/jqgrid/jqgrid.html[/URL]

espero sea de utilidad.