jQWidgets Forums
jQuery UI Widgets › Forums › Grid › getrowdatabyid returns 'undefined' after refreshing source
Tagged: angular grid, data adapter, dataBind, grid, id, jquery grid, jqxgrid, source, update grid source, updatebounddata
This topic contains 5 replies, has 2 voices, and was last updated by Justintkw 8 years, 11 months ago.
-
Author
-
After refreshing the grid data through the following code:
var source = $('#jqxgrid_AvalCS').jqxGrid('source'); source.localdata = AvailCSList; var new_dataAdapter = new $.jqx.dataAdapter(source); source.dataBind(); $("#jqxgrid_AvalCS").jqxGrid({ source: new_dataAdapter }); $('#jqxgrid_AvalCS').jqxGrid('updatebounddata');
I can no longer get the row data by id.
var rowdata = $('#jqxgrid_AvalCS').jqxGrid('getrowdatabyid', rowID);
returns undefined.However, I can still get the row data by the index of the row very same row
var rowdata = $('#jqxgrid_AvalCS').jqxGrid('getrowdata', rowIndex);
returns data without issue.Please advise.
Thank you.
I found the quick fix: by also re-entery the id of the source (source.id = Whatever).
This is a bit inconsistent though: that the control assumes that the field definition hasn’t changed, and yet requires the user to re-enter the id upon reload.
Hello Justintkw,
The proper way of updating the grid’s source is the following:
source.localdata = AvailCSList; // this is the original "source" variable dataAdapter.dataBind(); // "dataAdapter" is the original jqxDataAdapter instance the grid is bound to $('#jqxgrid_AvalCS').jqxGrid('updatebounddata');
Best Regards,
DimitarjQWidgets team
http://www.jqwidgets.com/Thanks, Dimitar.
I know that I can reference the grid’s original source from another function (outside the grid’s script block) by doing this:
var source = $(‘#jqxgrid_AvalCS’).jqxGrid(‘source’);
But how do I reference the original jqxDataAdapter?
Hello Justintkw,
Here is how to get both dynamically:
var dataAdapter = $('#jqxgrid_AvalCS').jqxGrid('source'); // because you have initially set the grid's "source" property to the data adapter instance var source = dataAdapter._source;
Your code will then become:
var dataAdapter = $('#jqxgrid_AvalCS').jqxGrid('source'); var source = dataAdapter._source; source.localdata = AvailCSList; dataAdapter.dataBind();
Best Regards,
DimitarjQWidgets team
http://www.jqwidgets.com/Wow. You are so clear with your explanation, Dimitar! I wish all responses to questions were this clear. THANK YOU!
-
AuthorPosts
You must be logged in to reply to this topic.