Reputation: 10647
I have a grid in my application. To fill it with data, the user fills out a form and submits it. The server responds with JSON data containing all the results for the grid (the server is not hit again).
In terms of jqGrid, the settings would be loadonce: true
and datatype: "json"
. But these don't work together.
What I have been doing -- and it seems like a poor way of doing it -- is the following, which changes the grid settings, loads data, and changes the grid's settings back.
$("#myGrid").jqGrid("setGridParam", {datatype: "json", loadonce: true});
$("#myGrid")[0].addJSONData(data);
$("#myGrid").jqGrid("setGridParam", {datatype: "local", loadonce: true});
Is there another, better way?
Thanks!
Upvotes: 1
Views: 4467
Reputation: 81
I was have the same problem, my solution was:
$("#myGrid").jqGrid('setGridParam', { url: 'MyNewUrl', datatype:"json" });
$("#myGrid").trigger("reloadGrid");
Or
$("#myGrid").jqGrid('setGridParam', { url: 'MyNewUrl', datatype:"json"}).trigger("reloadGrid");
I hope it's works for you.
Upvotes: 1
Reputation: 2821
I just solved the same problem using the afterSubmit
event for create/edit/delete operations. Here is the question and answer:
Can't refresh jqgrid with loadonce: true
Upvotes: 1
Reputation: 221997
If you have set the correct url
of the grid and the grid will be fill with the server data (with or without loadonce:true
), then to reload the data from the server you can do the following:
$("#myGrid").jqGrid("setGridParam",{datatype:"json"}).trigger("reloadGrid");
or
$("#myGrid").jqGrid("setGridParam",{datatype:"json"}).trigger("reloadGrid",[{page:1}]);
Upvotes: 2