Ich habe den von Ihnen verwendeten Code überprüft und den Grund gefunden. Du hattest id
doppeltes Problem in Ihrem Code . Sie haben <table>
definiert Element, das für jqGrid wie folgt verwendet wird
<table id="location"><tr><td /></tr></table>
<div id="pager-location"></div>
Es hat "location"
als id
. Später haben Sie
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}
],
wobei der Name location
wird als Spaltenname verwendet. Das Problem ist, dass der Spaltenname verwendet wird, um id
zu erstellen Name verschiedener Elemente des Rasters. Außerdem verwendet die Formularbearbeitung den Spaltennamen direkt als id
Wert von <input>
Feld, das den Standort darstellt . Nach Verwendung von Add bildet das folgende Element
<input name="location" class="FormElement ui-widget-content ui-corner-all" id="location" role="textbox" type="text">
existiert auf der Seite mit id="location"
zu. Wenn der Benutzer das Formular schließt, wird es ausgeblendet, aber nicht zerstört. Denn das Bearbeitungsformular wird auf der Seite vorher platziert <table id="location">
das nächste $("#location tbody:first")
verwendet in der Linie
Finde die Tabelle nicht mehr und das Grid bleibt leer.
Was Sie tun sollten, ist einfach <table id="location">
umzubenennen zu etwas wie <table id="
grid-location">` oder wählen Sie einen anderen Namen. Sie sollten den entsprechenden JavaScript-Code aktualisieren.
Weitere Änderungen, die im Grid vorgenommen werden sollten:
- ändere
jsonReader: {repeatitems: true, idms_location: "idms_location" }
zujsonReader: {id: "idms_location" }
. - füge
gridview: true
Möglichkeit. - add
autoencode: true
Möglichkeit. - nicht vorhandene Optionen entfernen
add:true, del:true
Eigenschaften auscolModel
index
entfernen Eigenschaften auscolModel
.- Sie sollten
Content-Type
korrigieren HTTP-Header, den Sie in der Serverantwort mit JSON-Daten verwenden. Es sollteContent-Type: application/json
sein stattContent-Type: text/html
die Sie derzeit verwenden. Es ist nur eine Zeile PHP-Code. - Sie können
{edit:true,add:true,del:true}
entfernen Optionen vonnavGrid
- Es sind die Standardoptionen.