2016-06-30 3 views
1

У меня есть qx.data.Array переменная содержит объекты. Как подключить массив к таблице? Я полагаю, что мне нужно отображать код в коде ниже. Строки в таблице пусты, но их количество верное.Как управлять qx.data.Array через qx.ui.table.Table

var rowData = theStore.getModel(); //it is qx.data.Array type 
var tableModel = new qx.ui.table.model.Simple(); 
tableModel.setData(rowData); 
var table = new qx.ui.table.Table(tableModel); 

Спасибо, Karol

ответ

1

Глядя на модели данных:

map array
у вас есть массив объектов/карты. В этом случае вы можете использовать tableModel.setDataAsMapArray(rowData) http://demo.qooxdoo.org/current/apiviewer/#qx.ui.table.model.Simple~setDataAsMapArray
вместо tableModel.setData(rowData).

Однако вы должны сначала установить идентификаторы столбцов модели, чтобы qooxdoo мог установить сопоставление данных с столбцами. , например. tableModel.setColumns(Object.keys(rowData[0])) должен работать

+0

Спасибо, адрелино. Он решил проблему, кроме того, мне пришлось добавить функцию toArray() (var rowData = theStore.getModel(). ToArray();). Когда я редактирую строку и изменяю ее, это изменение не отражается в файлеStore.getModel(). Является ли способ иметь исходные строки (theStore.getModel()) в таблице, а не их копию? –

+0

нет привязки данных между таблицей Стол <--> tableModel, поэтому вам нужно сделать это вручную. 1. Вы редактируете строку, используя таблицу qooxdoo + tableModel? 2. Или вы редактируете исходные данные в хранилище? <- Если вы вызываете tableModel.getDataAsMapArray(), вы должны получить измененные данные из таблицы qooxdoo. -> И во втором случае просто вызовите setData (rowData) снова, чтобы перезаписать старые данные – adrelino

1

qx.ui.table.Table не обрабатывает привязки изначально, таким образом, вы не можете связать вашу модель (магазин) к столу и есть изменения, внесенные в таблицу отражены в хранилище без ручного синхронизации.

Создание собственной таблицыModel (реализация интерфейса qx.ui.table.ITableModel) довольно просто, вы можете создать пользовательскую модель таблицы, тогда вы можете связать свой магазин с моделью вашей пользовательской модели, имеющей двунаправленную привязку между таблицей ячейки и модель хранилища.

Смежные вопросы