# Perspective Table Changing display order of columns having bindings

**URL:** <https://forum.inductiveautomation.com/t/perspective-table-changing-display-order-of-columns-having-bindings/67927>\
**Category:** Ignition\
**Tags:** perspective\
**Created:** [December 22, 2022, 2:46pm UTC](https://forum.inductiveautomation.com/t/perspective-table-changing-display-order-of-columns-having-bindings/67927 "2022-12-22T14:46:37Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![francois.morin](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/francois.morin/32/15064_2.png) [@francois.morin](https://forum.inductiveautomation.com/u/francois.morin)\
**Post date:** [December 22, 2022, 2:46pm UTC](https://forum.inductiveautomation.com/t/perspective-table-changing-display-order-of-columns-having-bindings/67927/1 "2022-12-22T14:46:37Z")

</div>

Is there a way to simply change the order of columns in a perspective table having header translate() expression on each columns.

Currently, If I add or delete a column, all the bindings are offset.

This is caused by the fact that all bindings of a table are stored in a different dictionary then the columns properties. So when I delete the column, the binding dictionary indexes are not updated.

I currently have to copy the grid in a notepad++ and do the change in the json. then paste it back to ignition.

 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/7/8/78b634e8371277bd1a58f6024eb3542a6bd593d8.png)

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [December 22, 2022, 3:16pm UTC](https://forum.inductiveautomation.com/t/perspective-table-changing-display-order-of-columns-having-bindings/67927/2 "2022-12-22T15:16:12Z")

</div>

This ~~bug~~ _behavior_ of bindings on arrays is the source of longstanding complaints. It must be very difficult to solve, as it has not been solved and doesn't look like it will be solved.

The most common work-around is to bind the whole array and programmatically generate all of the array elements. Consider the approaches in this topic for optimizing, too:

> [@\[IGN-4876\]System.util.translate takes too long](https://forum.inductiveautomation.com/t/ign-4876-system-util-translate-takes-too-long/51771):
>
> I have been implementing additional languages into the program and as I do, I’m noticing major slowdowns in loading times, even when it’s in English. This is especially true when it comes to the use of system.util.translate. Has anyone else been having this issue? Is there a way to fix this or a workaround that anyone could suggest?

---

<div class="post-metadata">

**Author:** ![francois.morin](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/francois.morin/32/15064_2.png) [@francois.morin](https://forum.inductiveautomation.com/u/francois.morin)\
**Post date:** [December 22, 2022, 3:57pm UTC](https://forum.inductiveautomation.com/t/perspective-table-changing-display-order-of-columns-having-bindings/67927/3 "2022-12-22T15:57:06Z")

</div>

An easy fix would be to have a display index in the column properties.  
That way I could add the column at the end and just change the display index

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [December 22, 2022, 4:02pm UTC](https://forum.inductiveautomation.com/t/perspective-table-changing-display-order-of-columns-having-bindings/67927/4 "2022-12-22T16:02:22Z")

</div>

That's somewhat counter-intuitive. The defining feature of an array is that it is **ordered**. If you didn't want that order, you might as well have had a map/dictionary instead. Like I said: not simple.

---

<div class="post-metadata">

**Author:** ![francois.morin](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/francois.morin/32/15064_2.png) [@francois.morin](https://forum.inductiveautomation.com/u/francois.morin)\
**Post date:** [December 22, 2022, 4:04pm UTC](https://forum.inductiveautomation.com/t/perspective-table-changing-display-order-of-columns-having-bindings/67927/5 "2022-12-22T16:04:01Z")

</div>

Do you know if there is any plan to have the headers translated natively like a label ?

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [December 22, 2022, 4:06pm UTC](https://forum.inductiveautomation.com/t/perspective-table-changing-display-order-of-columns-having-bindings/67927/6 "2022-12-22T16:06:23Z")

</div>

FWIW, I'm with you. The designer knows what bindings are present when the user asks it to insert or delete a row. I think, based on the principle of least surprise, that it should move the bindings. Alas, it does not.

As for automatic translation, I think not. The columns property is entirely user-supplied, and IA's auto-translation is generally restricted to the UI keys that are built-into the components.

---

<div class="post-metadata">

**Author:** ![nminchin](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/nminchin/32/6911_2.png) [@nminchin](https://forum.inductiveautomation.com/u/nminchin)\
**Post date:** [December 22, 2022, 6:41pm UTC](https://forum.inductiveautomation.com/t/perspective-table-changing-display-order-of-columns-having-bindings/67927/7 "2022-12-22T18:41:43Z")

</div>

Coincidentally, I have broken many things with the rearrange-array-items-but-not-bindings "feature". It's really fun when those things are svg element paths that are bound 😕
