jqGrid: botón personalizado en la barra de navegación agregado varias veces
Frecuentes
Visto 1,119 veces
1
He agregado un botón personalizado en mi barra de navegación:
function myFunc(){
$("#grid").jqGrid({
datatype: 'json',
url: 'arquivo.jsp',
jsonReader: {repeatitems: false, root: 'root'},
pager: '#paginado',
rowNum: 10,
autoencode: true,
rowList: [10,20,30],
emptyrecords: "Não há registros.",
recordtext: "Registros {0} - {1} de {2}",
loadtext: "Carregando...",
pgtext: "Página {0} de {1}",
height: 250,
width: 700,
colNames:['Código','Nome', 'Ativo', 'Data Inclusão','Login','Senha','Confirma Senha','Email','Grupos'],
colModel:[
{name:'codigo', width:80, sorttype:"int", editable: true, editrules: { edithidden: true }},
{name:'nome', width:120, editable: true, editrules:{required:true}},
{name:'ativo', width:80, gridview: true, editable: true, edittype:'select', editoptions:{value:{1:'Sim',2:'Não'}}, editrules:{required:true}},
{name:'dataInclusao', width:120, sorttype:"date", datefmt: 'd/M/Y', editable: true, editrules:{required:true, date:true}, editoptions: { dataInit: function(el) { setTimeout(function() { $(el).datepicker({ dateFormat: 'dd/mm/yy' }).val(); }, 200); }}},
{name:'login', width:80, sortable:true, editable: true, editrules:{required:true}},
{name:'senha', width:80, sortable:true, editable: true, hidden:true, edittype:'password', editrules:{edithidden:true, required:true, custom:true, custom_func:validaSenha}},
{name:'confirmaSenha', width:80, sortable:true, editable: true, hidden:true, edittype:'password', editrules:{edithidden:true, required:true}},
{name:'email', width:150, sortable:true, editable: true, editrules:{required:true, email:true}}
],
multiselect: true,
viewrecords: true,
editurl:"data?edit=true",
caption: "Usuários"}
);
$("#grid").jqGrid('navGrid','#paginado',{},
{edit:true,url:"teste?acao=edit",closeAfterEdit:true,reloadAfterSubmit:true,
beforeShowForm: function(form) {
$('#tr_codigo', form).hide();
},
onClickSubmit: function(params, postdata) {
validaSenha();
}
},
{add:true,url:"teste?acao=teste",closeAfterAdd:true,reloadAfterSubmit:true,
beforeShowForm: function(form) {
$('#tr_codigo', form).hide();
},
onClickSubmit: function(params, postdata) {
validaSenha();
}
},
{del:true,reloadAfterSubmit:true,
onclickSubmit: function(url, postdata){
url.url = 'teste?acao=del';
return {codigo: $('#grid').getCell(postdata, 'codigo')};
}
},
{search:true},
{refresh:true}
).navButtonAdd('#paginado',{
caption:"",
buttonicon:"ui-icon-suitcase",
onClickButton: function(){
var dados = $("#grid").jqGrid('getGridParam','selrow');
},
position:"last"
});
};
pero cada vez que hago clic en la página que muestra mi cuadrícula, se agrega un nuevo botón como se puede ver en esta imagen:
No sé si mi .jsp puede estar provocando este problema, pero definitivamente no puedo encontrar dónde está el problema. Espero que ustedes puedan ayudarme
Gracias por adelantado,
Lucas
2 Respuestas
0
Resolví el problema usando $('#grid').jqGrid('GridUnload');
Respondido el 10 de diciembre de 13 a las 10:12
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas javascript jquery jqgrid or haz tu propia pregunta.
Esto sucede cuando haces clic dondequiera en la página que contiene su cuadrícula? ¿O esto solo sucede al hacer clic en un lugar determinado? - FastTrack
Sucede cada vez que actualizo la página, pero no sucede cuando actualizo haciendo clic en el botón en la barra de navegación. Parece que está sobrescribiendo mi cuadrícula, pero lo curioso es que la única parte que se agrega varias veces es el botón personalizado: lucasdc
¿Puedes mostrar más de tu código? Solo quiero ver dónde usas el
navButtonAdd
función... Tal vez la ubicación es lo que está causando el problema. - FastTrackEdité con todo el código ahora - lucasdc
Hmmm... Veo que tiene su configuración de cuadrícula envuelta en una función:
myFunc()
... Intente mover la configuración de la cuadrícula fuera de la función, para que esté sola. Además, donde llamasmyFunc()
? Estoy pensando que esto tiene algo que ver con esa función - FastTrack