Ho verificato il codice che hai utilizzato e ho trovato il motivo. Avevi id
problema duplicato nel tuo codice . Hai definito <table>
elemento utilizzato per jqGrid come segue
<table id="location"><tr><td /></tr></table>
<div id="pager-location"></div>
Ha "location"
come id
. Successivamente hai definito
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}
],
dove il nome location
verrà utilizzato come nome della colonna. Il problema è che il nome della colonna verrà utilizzato per creare id
nome dei diversi elementi della griglia. Inoltre la modifica del modulo utilizza il nome della colonna direttamente come id
valore del <input>
campo che rappresenta la posizione . Dopo l'utilizzo di Aggiungi modulo il seguente elemento
<input name="location" class="FormElement ui-widget-content ui-corner-all" id="location" role="textbox" type="text">
esiste nella pagina con id="location"
anche. Se l'utente chiude il modulo verrà nascosto, ma non distrutto. Perché il modulo di modifica verrà inserito nella pagina prima <table id="location">
il prossimo $("#location tbody:first")
utilizzato in la linea
non trovi più la tabella e la griglia resta vuota.
Quello che dovresti fare è semplicemente rinominare <table id="location">
a qualcosa come <table id="
grid-location">` o scegli un altro nome. Dovresti aggiornare il codice JavaScript corrispondente.
Altre modifiche che dovrebbero essere fatte nella griglia:
- cambia
jsonReader: {repeatitems: true, idms_location: "idms_location" }
ajsonReader: {id: "idms_location" }
. - aggiungi
gridview: true
opzione. - aggiungi
autoencode: true
opzione. - rimuove le opzioni non esistenti
add:true, del:true
proprietà dacolModel
- rimuovi
index
proprietà dacolModel
. - dovresti correggere
Content-Type
Intestazione HTTP che utilizzi nella risposta del server con i dati JSON. Dovrebbe essereContent-Type: application/json
invece diContent-Type: text/html
che usi attualmente. È solo una riga di codice PHP. - puoi rimuovere
{edit:true,add:true,del:true}
opzioni dinavGrid
- sono le opzioni predefinite.