Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

jqGrid Act Estranho Recarregando Dados Após Inserir e Atualizar


Eu verifiquei o código que você usou e encontrei o motivo. Você tinha id problema duplicado em seu código . Você definiu <table> elemento usado para jqGrid da seguinte forma
<table id="location"><tr><td /></tr></table>
<div id="pager-location"></div>

Tem "location" como o id . Mais tarde você definiu
colModel: [
    {name:'idms_location',index:'idms_location', width:150, editable:true,add:true, del:true, key:true},
    {name:'location',index:'location', width:800,editable:true, add:true, del:true}     
],

onde o nome location será usado como o nome da coluna. O problema é que o nome da coluna será usado para construir id nome de diferentes elementos da grade. Além disso, a edição do formulário usa o nome da coluna direto como id valor do <input> campo que representa a localização . Após o uso de Add form o seguinte elemento
<input name="location" class="FormElement ui-widget-content ui-corner-all" id="location" role="textbox" type="text">

existe na página com id="location" também. Se o usuário fechar o formulário, ele ficará oculto, mas não será destruído. Porque o formulário de edição será colocado na página antes <table id="location"> o próximo $("#location tbody:first") usado na na ​​linha não encontre mais a mesa e a grade fique vazia.

O que você deve fazer é renomear <table id="location"> para algo como <table id=" grid-location">` ou escolha qualquer outro nome. Você deve atualizar o código JavaScript correspondente.

Outras alterações que devem ser feitas na grade:
  • alterar jsonReader: {repeatitems: true, idms_location: "idms_location" } para jsonReader: {id: "idms_location" } .
  • adicione gridview: true opção.
  • adicione autoencode: true opção.
  • remover opções inexistentes add:true, del:true propriedades de colModel
  • remover index propriedades de colModel .
  • você deve corrigir Content-Type Cabeçalho HTTP que você usa na resposta do servidor com dados JSON. Deve ser Content-Type: application/json em vez de Content-Type: text/html que você usa atualmente. É apenas uma linha de código PHP.
  • você pode remover {edit:true,add:true,del:true} opções de navGrid - são as opções padrão.