2010-07-17 10 views

Antwort

10

Wenn Sie datatype auf 'local' setzen, werden die Daten vom Server nicht geladen. Um das Laden von Daten zu erzwingen, können Sie datatype zu 'json' oder 'xml' in Bezug auf setGridParam Methode ändern (siehe http://www.trirand.com/jqgridwiki/doku.php?id=wiki:options und http://www.trirand.com/jqgridwiki/doku.php?id=wiki:methods#grid_related_methods) und rufen Sie dann trigger("reloadGrid") Methode.

Siehe jqGrid is not loading data, die auch die Informationen, was Sie gefragt haben.

+0

+1 Umdrehen der Datentyp funktionierte perfekt. Vielen Dank! – ongle

2

Legen Sie einfach nicht die Standard-URL in der Tabelle fest. Und installieren Sie es nur, wenn Sie Daten laden müssen (zum Beispiel per Knopfdruck) und dann .trigger("reloadGrid").

Beispiel für Sie:

jQuery("#grid").jqGrid(
     { 
      //Simply comment out the URL 
      //url    :"salepointsprovider.php", 
      datatype:"json", 
      colModel  :[ 
       {name:'SalePointId', index:'SalePointId'}, 
       {name:'Name', index:'Name'} 
      ] 
     } 

$('#ShowRecordsButton').click(function() { 
      jQuery("#grid").jqGrid('setGridParam', 
      {url:"salepointprovider.php?SalePointId=" + argSalePointId, page:1}); 
      jQuery("#grid").trigger('reloadGrid'); 
     } 
0

Mein Gitter ohne URL-Anforderungen an den Server senden:

.../_ search = false & nd = 1370817124473 & rows = 20 & page = 1 & Sidx = & sord = asc

Set Datentyp: "local" lösen Problem. Reload Raster von

 
`function reloadGrid(gridId, gridData){ 
    $(gridId).jqGrid('clearGridData'); // need for nonempty grig (see http://www.trirand.com/blog/?page_id=393/help/triggerreloadgrid-not-work/) 
    $(gridId).jqGrid('setGridParam', {data: gridData}).trigger('reloadGrid'); 
} 
`

Keine Notwendigkeit, Datentyp zu ändern (zumindest für meinen Json Fall erkannt wird)

0

In treegrid kann man nicht Datentyp verwenden = 'local'. Also statt 'local', setze ich den Datentyp = 'jsonstring', leere leere Daten und jsonReader definieren. jsonReader sollte entsprechend Ihren abgerufenen Daten korrekt definiert sein. Danke für Olegs answer. Und wenn ich Daten laden muss, ändere ich einfach den Datentyp in 'json'.

var fakeData ={ 
    rows: [] 
}; 
... 
datatype: 'jsonstring', 
datastr: fakeData, 
... 
jsonReader: { 
    repeatitems: false, 
    root: function (obj) { return obj.rows; }, 
    page: function (obj) { return 1; }, 
    total: function (obj) { return 1; }, 
    records: function (obj) { return obj.length; } 
} 
+0

Dies ist keine Antwort auf Frage. –