Liaison dynamique de la colonne et des lignes de la table
Je vais avoir des ennuis de liaison dynamique à la fois de ma table, les colonnes et les lignes pour travailler.
Supposons que j'ai deux modèles, l'un tenant la colonne de la table info:
var aColumnData = [
{
columnId : "col1"
},
{
columnId : "col2"
},
{
columnId : "col3"
},
{
columnId : "col4"
},
{
columnId : "col5"
}
];
et avec les données:
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"
}
];
Je puis mettre le modèle :
var oModel = new sap.ui.model.json.JSONModel();
oModel.setData({
columns : aColumnData,
rows : aData
});
J'ai ensuite créer ma table dans la vue:
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");
La partie qui me dérange, c'est la liaison de la colonne en cours dans le TextView modèle; ce doit être dynamique ("col1", "col2", etc) et fait à la volée (c'est ce que les liaisons sont de toute façon je suppose, mais je ne peux pas le faire fonctionner...
Je suppose que je suis absent quelque chose de simple et trivial, mais je suis un peu perdu maintenant...
Toute aide est très appréciée!
==============================
EDIT: je l'ai eu à travailler en parcourant les colonnes de tableau et à l'aide de la addColumn() méthode:
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)
}));
});
...mais j'espérais qu'il serait plus propre en utilisant l'approche de bindColumns() /bindRows() approche:
source d'informationauteur Qualiture
Vous devez vous connecter pour publier un commentaire.
J'ai fait quelque chose de semblable auparavant à l'aide de l'usine de fonctions voir jsbin exemple pour exemple similaire à la vôtre
vous pouvez utiliser 2 globalement nommé modèles dans ce scénario, l'un pour les métadonnées de l'un pour les données
par exemple
Heres un exemple jsbin exemple des colonnes dynamiques basées sur des métadonnées OData