Mysql
 sql >> Datenbank >  >> RDS >> Mysql

jqGrid Act Seltsames Neuladen von Daten nach dem Einfügen und Aktualisieren

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

definiert
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" } zu jsonReader: {id: "idms_location" } .
  • füge gridview: true Möglichkeit.
  • add autoencode: true Möglichkeit.
  • nicht vorhandene Optionen entfernen add:true, del:true Eigenschaften aus colModel
  • index entfernen Eigenschaften aus colModel .
  • Sie sollten Content-Type korrigieren HTTP-Header, den Sie in der Serverantwort mit JSON-Daten verwenden. Es sollte Content-Type: application/json sein statt Content-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 von navGrid - Es sind die Standardoptionen.