jQWidgets Forums
jQuery UI Widgets › Forums › Grid › jqxGrid shows [object Object] instead of empty strings
Tagged: datagrid, jquery grid, jqxgrid
This topic contains 4 replies, has 2 voices, and was last updated by nk 12 years, 3 months ago.
-
Author
-
Hi!
I have a problem with the following code:
<!DOCTYPE html><html lang="en"><head> <link rel="stylesheet" href="../../jqwidgets/styles/jqx.base.css" type="text/css" /> <script type="text/javascript" src="../../scripts/jquery-1.7.2.min.js"></script> <script type="text/javascript" src="../../jqwidgets/jqxcore.js"></script> <script type="text/javascript" src="../../jqwidgets/jqxdata.js"></script> <script type="text/javascript" src="../../jqwidgets/jqxbuttons.js"></script> <script type="text/javascript" src="../../jqwidgets/jqxscrollbar.js"></script> <script type="text/javascript" src="../../jqwidgets/jqxgrid.js"></script> <script type="text/javascript" src="../../jqwidgets/jqxgrid.selection.js"></script> <script type="text/javascript"> $(document).ready(function () { var theme = ''; var data = [ {"Id":1,"Name":{"String":"Vasja Pupkin","Valid":true}}, {"Id":2,"Name":{"String":"","Valid":false}} ]; var source = { localdata: data, datatype: "json", datafields: [ {name: 'Id'}, {name: 'Name', map: 'Name>String'} ] }; $("#jqxgrid").jqxGrid({ source: source, width: 200, autoheight: true, columns: [ {text: 'Id', datafield: 'Id', width: 100}, {text: 'Name', datafield: 'Name', width: 100} ] }); }); </script></head><body class='default'> <div id="jqxgrid"></div></body></html>
It shows [object Object] instead of an empty string in the second row. What am I doing wrong?
-Nikolai
Hi Nikolai,
Here’s a sample code:
<!DOCTYPE html><html lang="en"><head> <link rel="stylesheet" href="../../jqwidgets/styles/jqx.base.css" type="text/css" /> <script type="text/javascript" src="../../scripts/jquery-1.7.2.min.js"></script> <script type="text/javascript" src="../../jqwidgets/jqxcore.js"></script> <script type="text/javascript" src="../../jqwidgets/jqxdata.js"></script> <script type="text/javascript" src="../../jqwidgets/jqxbuttons.js"></script> <script type="text/javascript" src="../../jqwidgets/jqxscrollbar.js"></script> <script type="text/javascript" src="../../jqwidgets/jqxmenu.js"></script> <script type="text/javascript" src="../../jqwidgets/jqxgrid.js"></script> <script type="text/javascript" src="../../jqwidgets/jqxgrid.selection.js"></script> <script type="text/javascript" src="../../jqwidgets/jqxgrid.columnsresize.js"></script> <script type="text/javascript"> $(document).ready(function () { var data = [ { "Id": 1, "Name": { "String": "Vasja Pupkin", "Valid": true} }, { "Id": 2, "Name": { "String": "", "Valid": false} } ]; var source = { localdata: data, datatype: "json", datafields: [ { name: 'Id' }, { name: 'String', map: 'Name>String' } ] }; var dataAdapter = new $.jqx.dataAdapter(source); $("#jqxgrid").jqxGrid({ source: source, width: 200, autoheight: true, columns: [ { text: 'Id', datafield: 'Id', width: 100 }, { text: 'Name', datafield: 'String', width: 100 } ] }); }); </script></head><body class='default'> <div id='jqxgrid'"> </div></body></html>
Best Regards,
Peter StoevjQWidgets Team
http://www.jqwidgets.comIt works, thanks! It seems ‘datafield’ in ‘columns’ can be anything except “Name”.
The datafield should point to the field that actually contains the information that should be displayed. That’s not “Name” in your JSON because Name is Object with additional fields.
Best Regards,
Peter StoevjQWidgets Team
http://www.jqwidgets.comYes, of course, that’s why there is the mapping part:
“{name: ‘Name’, map: ‘Name>String’}”
It starts working as expected by changing the key:
{name: ‘String’, map: ‘Name>String’}
or
{name: ‘name’, map: ‘Name>String’}
or
{name: ‘AnythingElseButName’, map: ‘Name>String’}-Nikolai
-
AuthorPosts
You must be logged in to reply to this topic.