This is a migrated thread and some comments may be shown as answers.

Datasource and complex JSON

1 Answer 241 Views
Data Source
This is a migrated thread and some comments may be shown as answers.
John
Top achievements
Rank 1
John asked on 12 Jun 2014, 08:08 AM

 

Hi!
I want to fill a grid with a complex json returned from a webservice.
My json contains two things:
> "data": array with the records that will fill the grid
> "columns": array with the config(layout) of the grid

I have successfully filled the grid with the "data" by specifying the model data.
My problem is that i cannot  get the "columns" from the datasource. Is there a way to do it?

Here is my JSON
001.{
002.    "data": [
003.        {
004.            "id": 0,
005.            "firstname": "Hudson",
006.            "lastname": "Lynn",
007.            "gender": "male",
008.            "email": "hudsonlynn@emtrak.com",
009.            "phone": "699-434-2739",
010.            "address": "70 Delmonico Place, Roberts, New York",
011.            "birthday": "03/07/1968",
012.            "currency": "CHF"
013.        },
014.        {
015.            "id": 1,
016.            "firstname": "Michelle",
017.            "lastname": "Stanton",
018.            "gender": "female",
019.            "email": "michellestanton@emtrak.com",
020.            "phone": "699-374-6225",
021.            "address": "55 Gotham Avenue, Makena, Maryland",
022.            "birthday": "14/03/1965",
023.            "currency": "CHF"
024.        },
025.        {
026.            "id": 2,
027.            "firstname": "Marsh",
028.            "lastname": "Reilly",
029.            "gender": "male",
030.            "email": "marshreilly@emtrak.com",
031.            "phone": "699-546-0025",
032.            "address": "22 Mayfair Drive, Westmoreland, Nevada",
033.            "birthday": "17/07/1988",
034.            "currency": "CAD"
035.        }
036.    ],
037.    "columns": [
038.        {
039.            "field": "firstname",
040.            "title": "Frist Name",
041.            "width": 200,
042.            "attributes": {
043.                "class": "",
044.                "style": "text-align: left;"
045.            },
046.            "headerAttributes": {
047.                "class": "table-header-cell",
048.                "style": "text-align: left;"
049.            }
050.        },
051.        {
052.            "field": "lastname",
053.            "title": "Last Name",
054.            "attributes": {
055.                "class": "",
056.                "style": "text-align: left;"
057.            },
058.            "headerAttributes": {
059.                "class": "table-header-cell",
060.                "style": "text-align: left;"
061.            }
062.        },
063.        {
064.            "field": "gender",
065.            "title": "Gender",
066.            "attributes": {
067.                "class": "",
068.                "style": "text-align: left;"
069.            },
070.            "headerAttributes": {
071.                "class": "table-header-cell",
072.                "style": "text-align: left;"
073.            }
074.        },
075.        {
076.            "field": "email",
077.            "title": "e-mail",
078.            "attributes": {
079.                "class": "",
080.                "style": "text-align: left;"
081.            },
082.            "headerAttributes": {
083.                "class": "table-header-cell",
084.                "style": "text-align: left;"
085.            }
086.        },
087.        {
088.            "field": "phone",
089.            "title": "Phone Number",
090.            "attributes": {
091.                "class": "",
092.                "style": "text-align: right;"
093.            },
094.            "headerAttributes": {
095.                "class": "table-header-cell",
096.                "style": "text-align: right;"
097.            }
098.        },
099.        {
100.            "field": "address",
101.            "title": "Address",
102.            "attributes": {
103.                "class": "",
104.                "style": "text-align: left;"
105.            },
106.            "headerAttributes": {
107.                "class": "table-header-cell",
108.                "style": "text-align: left;"
109.            }
110.        },
111.        {
112.            "field": "birthday",
113.            "title": "Birthday",
114.            "attributes": {
115.                "class": "",
116.                "style": "text-align: center;"
117.            },
118.            "headerAttributes": {
119.                "class": "table-header-cell",
120.                "style": "text-align: center;"
121.            }
122.        },
123.        {
124.            "field": "currency",
125.            "title": "Currency",
126.            "attributes": {
127.                "class": "",
128.                "style": "text-align: center;"
129.            },
130.            "headerAttributes": {
131.                "class": "table-header-cell",
132.                "style": "text-align: center;"
133.            }
134.        }
135.    ]
136.}


Here is how i fill the datasource
01.var customersSource = new kendo.data.DataSource({
02.        transport: {
03.            read: {
04.                url: crudServiceBaseUrl + "/customers.json",
05.                dataType: "json"
06.            }
07.        },
08.        schema: {
09.            data: "data"
10.        }
11.    });

Here is my gridOptions
1.$scope.mainGridOptions = {
2.        dataSource: customersSource,
3.        //columns: customersSource.columns???,
4.        height: 500,
5.        scrollable: true,
6.        selectable: true
7.    };



1 Answer, 1 is accepted

Sort by
0
Atanas Korchev
Telerik team
answered on 12 Jun 2014, 12:43 PM
Hello,

It looks this got answered in stack overflow.

Regards,
Atanas Korchev
Telerik
 
Join us on our journey to create the world's most complete HTML 5 UI Framework - download Kendo UI now!
 
Tags
Data Source
Asked by
John
Top achievements
Rank 1
Answers by
Atanas Korchev
Telerik team
Share this question
or