La carga de jqgrid no ocurre con loadonce: true
Soy novato en el uso de jqgrid.
Mientras se carga la nueva página, la cuadrícula carga correctamente los datos de la base de datos. Después debido a la carga una vez: cierto, la cuadrícula no está recargando los datos de la base de datos para agregar / editar / eliminar.
Mi combinación de aplicaciones es JSP, Servlet, MySQL
Tengo una cuadrícula con las siguientes configuraciones
jQuery("#userList").jqGrid({
url: '<%=request.getContextPath()%>/userJqGrid?q=1&action=fetchData&userCookie=<%= encodedCookie%>',
datatype: 'xml',
mtype: 'GET',
colNames:['<%= userProp.getProperty(userColNames[0])%>',
'<%= userProp.getProperty(userColNames[1])%>',
'<%= userProp.getProperty(userColNames[2])%>',
'<%= userProp.getProperty(userColNames[3])%>',
'<%= userProp.getProperty(userColNames[4])%>',
'<%= userProp.getProperty(userColNames[5])%>'
],
colModel:[
{name:'<%= userColNames[0]%>',index:'<%= userColNames[0]%>',
width:120,sortable:true,editable:true,editrules:{required:true},formoptions:{rowpos:1, elmprefix:'*'}},
{name:'<%= userColNames[1]%>',index:'<%= userColNames[1]%>',
width:130,sortable:true,editable:true},
{name:'<%= userColNames[2]%>',index:'<%= userColNames[2]%>',
width:100,sortable:true,editable:true,editrules:{required:true},formoptions:{rowpos:3, elmprefix:'*'}},
{name:'<%= userColNames[3]%>',index:'<%= userColNames[3]%>',
width:180,sortable:true,editable:true,editrules:{email:true,required:true},formoptions:{rowpos:4, elmprefix:'*'}},
{name:'<%= userColNames[4]%>',index:'<%= userColNames[4]%>',
width:100,sortable:true,editable:true},
{name:'<%= userColNames[5]%>',index:'<%= userColNames[5]%>',
width:100,sortable:true,editable:true},
],
pager: '#pager1',
rowNum:50,
height:'auto',
//rowList:[10,20,30],
loadonce: true,
sortname:'<%= userColNames[0]%>',
viewrecords: true,
editurl:'<%=request.getContextPath()%>/userJqGrid?q=1&action=addData&userCookie=<%= encodedCookie%>',
caption: 'User Grid',
ondblClickRow: function(rowid) {
$("#userList").jqGrid('editGridRow',rowid, userEditParam);
return;
}
});
$("#userList").jqGrid('navGrid',"#pager1",{add:true,edit:true,del:true});
$("#userList").jqGrid('gridResize', { minWidth: 450, minHeight: 150});
Intenté agregar el siguiente código para recargar
$("#userList").jqGrid('setGridParam',{datatype:xml}).trigger('reloadGrid')
¿Puede alguien ayudarme?
Solución que funcionó para mí
$("#userList").jqGrid('navGrid',"#pager1",{add:true,edit:true,del:true,refresh:true,
beforeRefresh: function() {
$("#userList").jqGrid('setGridParam',{datatype:xml}).trigger('reloadGrid');
}},
{
afterSubmit: processAddEdit,
closeAfterAdd:true,
closeAfterEdit:true
},{
aftersubmit:processAddEdit,
closeAfterAdd:true,
closeAfterEdit:true
});
function processAddEdit() {
$("#userList").jqGrid('setGridParam',{datatype:xml}).trigger('reloadGrid');
return[true,'']; //no error
}