Ověřil jsem kód, který jste použili, a našel důvod. Měli jste id duplicitní problém ve vašem kódu . Definovali jste <table> prvek použitý pro jqGrid následovně
<table id="location"><tr><td /></tr></table>
<div id="pager-location"></div>
Má "location" jako id . Později jste definovali
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}
],
kde je název location bude použit jako název sloupce. Problém je v tom, že název sloupce bude použit k sestavení id název různých prvků mřížky. Navíc úprava formuláře používá název sloupce přímo jako id hodnotu <input> pole, která představují umístění . Po použití formuláře Přidat následující prvek
<input name="location" class="FormElement ui-widget-content ui-corner-all" id="location" role="textbox" type="text">
existuje na stránce s id="location" také. Pokud uživatel formulář zavře, bude skrytý, ale nezničí se. Protože editační formulář bude umístěn na stránku před <table id="location"> další $("#location tbody:first") použité v linka
už tabulku nenajdete a mřížka zůstane prázdná.
Co byste měli udělat, je přejmenovat <table id="location"> na něco jako <table id=" grid-location">` nebo zvolte jakýkoli jiný název. Měli byste aktualizovat odpovídající kód JavaScript.
Další změny, které by měly být provedeny v mřížce:
- změnit
jsonReader: {repeatitems: true, idms_location: "idms_location" }dojsonReader: {id: "idms_location" }. - přidejte
gridview: truemožnost. - přidejte
autoencode: truemožnost. - odebrat neexistující možnosti
add:true, del:truevlastnosti zcolModel - odebrat
indexvlastnosti zcolModel. - měli byste opravit
Content-TypeHTTP hlavička, kterou používáte v odpovědi serveru s daty JSON. Mělo by to býtContent-Type: application/jsonmístoContent-Type: text/htmlkteré aktuálně používáte. Je to jen jeden řádek kódu PHP. - můžete odstranit
{edit:true,add:true,del:true}možnostinavGrid- jsou to výchozí možnosti.