Динамическая привязка столбцов и строк таблицы
У меня проблемы с получением динамической привязки столбцов и строк моей таблицы к работе.
Предположим, у меня есть две модели, одна содержит информацию о столбце таблицы:
var aColumnData = [
{
columnId : "col1"
},
{
columnId : "col2"
},
{
columnId : "col3"
},
{
columnId : "col4"
},
{
columnId : "col5"
}
];
и один с данными:
var aData = [
{
col1 : "Row 1 col 1",
col2 : "Row 1 col 2",
col3 : "Row 1 col 3",
col4 : "Row 1 col 4",
col5 : "Row 1 col 5"
},
{
col1 : "Row 2 col 1",
col2 : "Row 2 col 2",
col3 : "Row 2 col 3",
col4 : "Row 2 col 4",
col5 : "Row 2 col 5"
}
];
Затем я устанавливаю модель:
var oModel = new sap.ui.model.json.JSONModel();
oModel.setData({
columns : aColumnData,
rows : aData
});
Затем я создаю свою таблицу в виде:
var oTable = new sap.ui.table.Table();
var oColumnTemplate = new sap.ui.table.Column({
label : "{columnDesc}",
template : new sap.ui.commons.TextView().bindProperty("text", "<this_should_be_dynamic_but_how?>")
});
oTable.bindColumns("/columns", oColumnTemplate);
oTable.bindRows("/rows");
Часть, которая вызывает ошибки, - это привязка к текущему столбцу в шаблоне TextView; это должно быть динамически ("col1", "col2" и т. д.) и выполняться на лету - это то, для чего, по-моему, нужны привязки - но я не могу заставить его работать ...
Я предполагаю, что упускаю что-то простое и тривиальное, но я немного растерялся ... Любая помощь высоко ценится!
==============================
РЕДАКТИРОВАТЬ: я получил его для работы, перебирая массив столбцов и используя метод addColumn ():
jQuery.each(aColumnData, function(i, v) {
oTable.addColumn(new sap.ui.table.Column({
label : v.columnDesc,
template: new sap.ui.commons.TextView().bindProperty("text", v.columnId)
}));
});
... но я надеялся, что будет более чистый подход с использованием подхода bindColumns () / bindRows ():