I'm trying to create a table or data grid with dynamic row and column count in my NativeScript application. I have some product categories and some products in these categories. Products have some specifications with respect to its belonging category. Here is an example JSON for products in graphic cards category:
{
"parts": [
{
"id": 1,
"name": "GTX 1080",
"stockCount": 10,
"specifications": [
{
"id": 1,
"name": "Memory",
"value": "11 GB"
},
{
"id": 2,
"name": "Core Clock",
"value": "1500 MHz"
}
]
},
{
"id": 2,
"name": "RX 580",
"stockCount": 8,
"specifications": [
{
"id": 1,
"name": "Memory",
"value": "8 GB"
},
{
"id": 2,
"name": "Core Clock",
"value": "1366 MHz"
}
]
}
]
}
Here is another example in CPU category:
{
"parts": [
{
"id": 3,
"name": "i5 7600K",
"stockCount": 8,
"specifications": [
{
"id": 3,
"name": "Socket",
"value": "LGA 1151"
},
{
"id": 4,
"name": "Frequency",
"value": "3.8 GHz"
},
{
"id": 5,
"name": "L3 Cache",
"value": "6 MB"
}
]
},
{
"id": 4,
"name": "Ryzen 7 1700",
"stockCount": 15,
"specifications": [
{
"id": 3,
"name": "Socket",
"value": "AM4"
},
{
"id": 4,
"name": "Frequency",
"value": "3.0 GHz"
},
{
"id": 5,
"name": "L3 Cache",
"value": "16MB"
}
]
}
]
}
I want to show graphic cards as a table like this:
Name Stock Memory Core Clock GTX 1080 10 11 GB 1500 MHz RX 580 8 8 GB 1366 MHz
and CPUs like this:
Name Stock Socket Frequency L3 Cache i5 7600K 8 LGA 1151 3.8 GHz 6 MB Ryzen 7 1700 15 AM4 3.0 GHz 16 MB
I have tried RadListView with GridLayout but cannot do this. If specification count for all categories would be constant, I could easily create GridLayout with constant number of columns like this:
<GridLayout columns="*, auto, auto, auto, auto">...</GridLayout>
But arbitrary number of specifications put me into a challenge here.
Is there some way in NativeScript Angular to achieve this? I'm using 4.1.0 version of NativeScript.