Dynamische Bindung von Tabellenspalten und -zeilen

Ich habe Probleme, die dynamische Bindung sowohl meiner Tabellenspalten als auch meiner Zeilen zum Funktionieren zu bringen.

Angenommen, ich habe zwei Modelle, von denen eines die Tabellenspalteninformationen enthält:

    var aColumnData = [
        {
            columnId : "col1"
        },
        {
            columnId : "col2"
        },
        {
            columnId : "col3"
        },
        {
            columnId : "col4"
        },
        {
            columnId : "col5"
        }
    ];

und eins mit den Daten:

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"
    }
];

Ich habe dann das Modell eingestellt:

    var oModel = new sap.ui.model.json.JSONModel();
    oModel.setData({
        columns : aColumnData,
        rows    : aData
    });

Ich erstelle dann meine Tabelle in der Ansicht:

    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");

Der Teil, der mich stört, ist die Bindung an die aktuelle Spalte in der TextView-Vorlage. Dies sollte dynamisch sein ("col1", "col2" usw.) und im laufenden Betrieb erfolgen - das ist, was Bindungen bedeuten, nehme ich an - aber ich kann es nicht zum Laufen bringen ...

Ich vermisse etwas Einfaches und Triviales, aber ich bin jetzt ein bisschen verloren ... Jede Hilfe wird sehr geschätzt!

=============================

BEARBEITEN: Ich habe es funktioniert, indem ich durch das Spalten-Array iteriert und die addColumn () -Methode verwendet habe:

    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) 
        })); 
    });

... aber ich hatte gehofft, dass es mit dem Ansatz bindColumns () / bindRows () einen saubereren Ansatz geben würde:

Antworten auf die Frage(1)

Ihre Antwort auf die Frage