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: trueopzione. - aggiungi
autoencode: trueopzione. - rimuove le opzioni non esistenti
add:true, del:trueproprietà dacolModel - rimuovi
indexproprietà dacolModel. - dovresti correggere
Content-TypeIntestazione HTTP che utilizzi nella risposta del server con i dati JSON. Dovrebbe essereContent-Type: application/jsoninvece diContent-Type: text/htmlche usi attualmente. È solo una riga di codice PHP. - puoi rimuovere
{edit:true,add:true,del:true}opzioni dinavGrid- sono le opzioni predefinite.