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" }
parajsonReader: {id: "idms_location" }
. - adicione
gridview: true
opção. - adicione
autoencode: true
opção. - remover opções inexistentes
add:true, del:true
propriedades decolModel
- remover
index
propriedades decolModel
. - você deve corrigir
Content-Type
Cabeçalho HTTP que você usa na resposta do servidor com dados JSON. Deve serContent-Type: application/json
em vez deContent-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 denavGrid
- são as opções padrão.