# Grid Nx2 with thunkable X?

**URL:** <https://community.thunkable.com/t/grid-nx2-with-thunkable-x/52662>\
**Category:** Questions about Thunkable X\
**Created:** [October 19, 2018, 9:08am UTC](https://community.thunkable.com/t/grid-nx2-with-thunkable-x/52662 "2018-10-19T09:08:48Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![diegobolivar](https://sea1.discourse-cdn.com/flex015/user_avatar/community.thunkable.com/diegobolivar/32/20122_2.png) [@diegobolivar](https://community.thunkable.com/u/diegobolivar)\
**Post date:** [October 19, 2018, 9:08am UTC](https://community.thunkable.com/t/grid-nx2-with-thunkable-x/52662/1 "2018-10-19T09:08:48Z")

</div>

Is there a way to create a 2-columns grid?

I collect data from json response, then the grid is created with N rows and always 2 columns.

---

<div class="post-metadata">

**Author:** ![actech](https://avatars.discourse-cdn.com/v4/letter/a/3d9bf3/32.png) [@actech](https://community.thunkable.com/u/actech)\
**Post date:** [October 19, 2018, 9:37am UTC](https://community.thunkable.com/t/grid-nx2-with-thunkable-x/52662/2 "2018-10-19T09:37:30Z")

</div>

If you want two columns in the ListViewer, this can only be done in some cases, for example, by formatting numbers of the same length in the first column:

00012 First  
01234 Second

You can use monospace text in a multiline text field. But it’s best to display the tables in WebViewer using HTML.

---

<div class="post-metadata">

**Author:** ![diegobolivar](https://sea1.discourse-cdn.com/flex015/user_avatar/community.thunkable.com/diegobolivar/32/20122_2.png) [@diegobolivar](https://community.thunkable.com/u/diegobolivar)\
**Post date:** [October 19, 2018, 9:49am UTC](https://community.thunkable.com/t/grid-nx2-with-thunkable-x/52662/3 "2018-10-19T09:49:14Z")

</div>

Json data is really an object array. In each grid I place an object.  
Now in Thunkable Classic I use and extension, but in thunkable X I don’t see any similar solution.

I would like to not use webviewer component.

---

<div class="post-metadata">

**Author:** ![actech](https://avatars.discourse-cdn.com/v4/letter/a/3d9bf3/32.png) [@actech](https://community.thunkable.com/u/actech)\
**Post date:** [October 19, 2018, 9:54am UTC](https://community.thunkable.com/t/grid-nx2-with-thunkable-x/52662/4 "2018-10-19T09:54:42Z")

</div>

To work with json in Thunkable X, use blocks to work with objects in the Objects category.

---

<div class="post-metadata">

**Author:** ![diegobolivar](https://sea1.discourse-cdn.com/flex015/user_avatar/community.thunkable.com/diegobolivar/32/20122_2.png) [@diegobolivar](https://community.thunkable.com/u/diegobolivar)\
**Post date:** [October 19, 2018, 9:56am UTC](https://community.thunkable.com/t/grid-nx2-with-thunkable-x/52662/5 "2018-10-19T09:56:33Z")

</div>

I know Thunkable Classic, but now I am learning Thunkable X and it is different. I’ll test Objects category. Thanks.

My doubt is how place this objects like a grid

---

<div class="post-metadata">

**Author:** ![actech](https://avatars.discourse-cdn.com/v4/letter/a/3d9bf3/32.png) [@actech](https://community.thunkable.com/u/actech)\
**Post date:** [October 19, 2018, 9:56am UTC](https://community.thunkable.com/t/grid-nx2-with-thunkable-x/52662/6 "2018-10-19T09:56:57Z")

</div>

Base sample.

![%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5](https://us1.discourse-cdn.com/flex015/uploads/thunkable/original/3X/9/9/99c4e3b571369888826772a8c872e537803699e0.png)

---

<div class="post-metadata">

**Author:** ![diegobolivar](https://sea1.discourse-cdn.com/flex015/user_avatar/community.thunkable.com/diegobolivar/32/20122_2.png) [@diegobolivar](https://community.thunkable.com/u/diegobolivar)\
**Post date:** [October 19, 2018, 9:58am UTC](https://community.thunkable.com/t/grid-nx2-with-thunkable-x/52662/8 "2018-10-19T09:58:58Z")

</div>

You response quickly, jajajaja.  
My doubt is how place this objects like a grid

---

<div class="post-metadata">

**Author:** ![actech](https://avatars.discourse-cdn.com/v4/letter/a/3d9bf3/32.png) [@actech](https://community.thunkable.com/u/actech)\
**Post date:** [October 19, 2018, 9:59am UTC](https://community.thunkable.com/t/grid-nx2-with-thunkable-x/52662/9 "2018-10-19T09:59:31Z")

</div>

I will show you now

---

<div class="post-metadata">

**Author:** ![diegobolivar](https://sea1.discourse-cdn.com/flex015/user_avatar/community.thunkable.com/diegobolivar/32/20122_2.png) [@diegobolivar](https://community.thunkable.com/u/diegobolivar)\
**Post date:** [October 19, 2018, 10:02am UTC](https://community.thunkable.com/t/grid-nx2-with-thunkable-x/52662/11 "2018-10-19T10:02:13Z")

</div>

Sorry, right now I can not show the result, but I can describe it:

Each grid contain:

- An image
- A title
- A description
- An ID

And I have two columns, forming hundreds of objects.

---

<div class="post-metadata">

**Author:** ![actech](https://avatars.discourse-cdn.com/v4/letter/a/3d9bf3/32.png) [@actech](https://community.thunkable.com/u/actech)\
**Post date:** [October 19, 2018, 10:05am UTC](https://community.thunkable.com/t/grid-nx2-with-thunkable-x/52662/12 "2018-10-19T10:05:36Z")

</div>

Does it have to be a table like this?

![%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5](https://us1.discourse-cdn.com/flex015/uploads/thunkable/original/3X/0/d/0d502e345c6b34f64d8956f2944ae83324d13c0d.png)

In Thunkable X, this can only be done using WebViewer, but after that you have to do the logic in JavaScript, since there is no simple data exchange between the native part and the WebViewer.

---

<div class="post-metadata">

**Author:** ![diegobolivar](https://sea1.discourse-cdn.com/flex015/user_avatar/community.thunkable.com/diegobolivar/32/20122_2.png) [@diegobolivar](https://community.thunkable.com/u/diegobolivar)\
**Post date:** [October 19, 2018, 10:12am UTC](https://community.thunkable.com/t/grid-nx2-with-thunkable-x/52662/13 "2018-10-19T10:12:45Z")

</div>

Ok. Then I will use Webviewer and javascript.  
It’s a pity.

---

<div class="post-metadata">

**Author:** ![actech](https://avatars.discourse-cdn.com/v4/letter/a/3d9bf3/32.png) [@actech](https://community.thunkable.com/u/actech)\
**Post date:** [October 19, 2018, 10:17am UTC](https://community.thunkable.com/t/grid-nx2-with-thunkable-x/52662/14 "2018-10-19T10:17:47Z")

</div>

Base sample HTML in WebViewer

![javascript](https://us1.discourse-cdn.com/flex015/uploads/thunkable/original/3X/0/8/08877d523c0ceefeeae76b75463e932935432ccf.png)

---

<div class="post-metadata">

**Author:** ![diegobolivar](https://sea1.discourse-cdn.com/flex015/user_avatar/community.thunkable.com/diegobolivar/32/20122_2.png) [@diegobolivar](https://community.thunkable.com/u/diegobolivar)\
**Post date:** [October 19, 2018, 10:19am UTC](https://community.thunkable.com/t/grid-nx2-with-thunkable-x/52662/15 "2018-10-19T10:19:51Z")

</div>

Ohhh, Thank you.

Then I can use javascript inline functions to interact with native screen.

---

<div class="post-metadata">

**Author:** ![actech](https://avatars.discourse-cdn.com/v4/letter/a/3d9bf3/32.png) [@actech](https://community.thunkable.com/u/actech)\
**Post date:** [October 19, 2018, 10:23am UTC](https://community.thunkable.com/t/grid-nx2-with-thunkable-x/52662/16 "2018-10-19T10:23:59Z")

</div>

You can only transfer data from the screen to javascript. To transfer data (and interaction) from JavaScript to the native part, you will need to use Firebase.

---

<div class="post-metadata">

**Author:** ![diegobolivar](https://sea1.discourse-cdn.com/flex015/user_avatar/community.thunkable.com/diegobolivar/32/20122_2.png) [@diegobolivar](https://community.thunkable.com/u/diegobolivar)\
**Post date:** [October 19, 2018, 10:26am UTC](https://community.thunkable.com/t/grid-nx2-with-thunkable-x/52662/17 "2018-10-19T10:26:49Z")

</div>

Well, how I have to use Webviewer component obligatorily, I’ll use to show individual object (doing clic) too. Easier

---

<div class="post-metadata">

**Author:** ![itmanager](https://avatars.discourse-cdn.com/v4/letter/i/edb3f5/32.png) [@itmanager](https://community.thunkable.com/u/itmanager)\
**Post date:** [November 9, 2019, 2:14pm UTC](https://community.thunkable.com/t/grid-nx2-with-thunkable-x/52662/18 "2019-11-09T14:14:35Z")

</div>

> [@actech](#):
>
> You can only transfer data from the screen to javascript. To transfer data (and interaction) from JavaScript to the native part, you will need to use Firebase.

Thanks for the tip. This will help me with displaying read-only data in a table, but does not help with needing editable cells for offline use.

Do you know if anyone @ Thunkable is working on a simple (read-only or read/write) Grid component?

---

<div class="post-metadata">

**Author:** ![domhnallohanlon](https://sea1.discourse-cdn.com/flex015/user_avatar/community.thunkable.com/domhnallohanlon/32/29554_2.png) [@domhnallohanlon](https://community.thunkable.com/u/domhnallohanlon)\
**Post date:** [November 9, 2019, 2:17pm UTC](https://community.thunkable.com/t/grid-nx2-with-thunkable-x/52662/19 "2019-11-09T14:17:20Z")

</div>

I’d recommend using the LocalDB with the `clone` block to achieve this.

---

<div class="post-metadata">

**Author:** ![itmanager](https://avatars.discourse-cdn.com/v4/letter/i/edb3f5/32.png) [@itmanager](https://community.thunkable.com/u/itmanager)\
**Post date:** [November 9, 2019, 2:17pm UTC](https://community.thunkable.com/t/grid-nx2-with-thunkable-x/52662/20 "2019-11-09T14:17:27Z")

</div>

> [@actech](#):
>
> ![javascript](http://community.thunkable.com/uploads/thunkable1/original/3X/0/8/08877d523c0ceefeeae76b75463e932935432ccf.png)

I combined your example with the sample code below to create a dynamic table for display-only.  
[https://renenyffenegger.ch/notes/development/web/HTML/tags/table/create-with-js](https://renenyffenegger.ch/notes/development/web/HTML/tags/table/create-with-js)

---

<div class="post-metadata">

**Author:** ![itmanager](https://avatars.discourse-cdn.com/v4/letter/i/edb3f5/32.png) [@itmanager](https://community.thunkable.com/u/itmanager)\
**Post date:** [November 9, 2019, 2:18pm UTC](https://community.thunkable.com/t/grid-nx2-with-thunkable-x/52662/21 "2019-11-09T14:18:06Z")

</div>

> [@domhnallohanlon](#):
>
> I’d recommend using the LocalDB

Isn’t that an invisible component?

---

<div class="post-metadata">

**Author:** ![domhnallohanlon](https://sea1.discourse-cdn.com/flex015/user_avatar/community.thunkable.com/domhnallohanlon/32/29554_2.png) [@domhnallohanlon](https://community.thunkable.com/u/domhnallohanlon)\
**Post date:** [November 9, 2019, 2:25pm UTC](https://community.thunkable.com/t/grid-nx2-with-thunkable-x/52662/22 "2019-11-09T14:25:29Z")

</div>

Something like this, with the data in the LocalDB:

> [@Changing properties of cloned components (DIY Advanced Listviewer)](http://community.thunkable.com/t/changing-properties-of-cloned-components/153213):
>
> We’re working hard to bring you the [Extended Listviewer](https://docs.thunkable.com/release-notes#coming-soon-to-thunkable) component to make developing your app even faster, but in the meantime here’s a DIY approach. By using the “Any Component” blocks in Thunkable, you are able to clone entire rows or columns of content. But what if you then want to change some of the components within the row or column? Design Usually you can leave the precise details of your design until the end, but in this case you need to know what components will be…

Create 1 “row” and clone as many as you need in your blocks.

[Next page](https://community.thunkable.com/t/grid-nx2-with-thunkable-x/52662.md?page=2)
