Javascript jqGrid-导航栏中的自定义按钮添加了多次
我在导航栏上添加了一个自定义按钮:Javascript jqGrid-导航栏中的自定义按钮添加了多次,javascript,jquery,jqgrid,Javascript,Jquery,Jqgrid,我在导航栏上添加了一个自定义按钮: function myFunc(){ $("#grid").jqGrid({ datatype: 'json', url: 'arquivo.jsp', jsonReader: {repeatitems: false, root: 'root'}, pager: '#paginado', rowNum: 10, autoencode: true, rowList: [10,20,30],
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"
});
})
但每次我单击显示我的网格的页面时,都会添加一个新按钮,如下图所示:
我不知道我的.jsp是否会导致这个问题,但我肯定找不到问题所在。希望你们能帮助我
提前感谢,
Lucas。我使用$('#grid').jqGrid('GridUnload')解决了这个问题 还有另一个线程讨论相同的问题。在较新的版本中,语法发生了更改。可能会帮助别人。请参阅
当您单击包含网格的页面上的任意位置时会发生这种情况?或者,这只发生在单击某个点时?每次刷新页面时都会发生,但单击导航栏上的按钮刷新页面时不会发生。看起来它覆盖了我的网格,但有趣的是,唯一被多次添加的部分是自定义按钮。你能显示更多的代码吗?我只是想看看您在哪里使用
navbuttonad
功能。。。可能是位置问题造成的。我现在用整个代码编辑了。。我看到您的网格设置包装在一个函数中:myFunc()
。。。尝试将网格设置移出函数,使其独立运行。另外,在哪里调用myFunc()
?我想这和功能有关
$.jgrid.gridUnload("#jqGridId");