Как да обвържа свойство на listitem (от listbox) със свойство на колона, sapui5

Имам списъчно поле със списъчни елементи. избраните от потребителя елементи от списъка стават колони на новосъздадената таблица, така че трябва да обвържа свойството "текст" на елемента от списъка със свойството "текст" на колоната; същото се брои за свойството "видимост" и "sortOrder". Не можах да намеря свойството „видимост“ и „ред“ за listitem, за да ги обвържа със същите чрез JSONmodel. Някой, който има повече опит с това? втори въпрос: ето моята пробна версия на обвързване, която не работи, моля, проверете логиката. Пр. от списъчно поле + listItem:

var listboxChooseColumns = new sap.ui.commons.ListBox("chooseColumns", {

                                                       allowMultiSelect: true,
                                                       items:
                                                                      [
                                                     new sap.ui.core.ListItem({
                                                                                          text: "Export number"     })]})

ето начина, по който се опитах да обвържа prop"text" на listitem с JSONmodel:

sap.ui.getCore().getModel().setProperty("{/visibleColumns/" + listItem.text +"}",  true);

ето пример за колона на таблица:

   table.addColumn(new sap.ui.table.Column({
    label : new sap.ui.commons.Label( {
        text : "{/visibleColumns/columnName}"
             })}));

ето JSONмодел:

 sap.ui.getCore().setModel(new sap.ui.model.json.JSONModel({
  columns: [
                { columnName: "Ëxport Number",
                visible: true,
                columnorder: 1
            },
   {
                columnName: "Functional Location",
                visible: true,
                columnorder: 1
              }]  
 }));

Но все пак някъде сбърках. Някакви идеи ?


person user3189516    schedule 11.02.2014    source източник


Отговори (1)


Мисля, че можете също да определите видимостта и реда; видимите колони ще бъдат избраните елементи във вашия ListBox, а редът ще бъде редът, в който се показват във вашия ListBox

Така че, когато промените съдържанието в списъка си (добавяне/премахване на елементи, промяна на реда в списъка), това също ще промени вашия модел.

Ако сега създадете шаблонен елемент за колоните на таблицата, вече можете просто да използвате метода „bindColumns“:

var oColumnsTemplate = new sap.ui.table.Column({
    label : new sap.ui.commons.Label().bindProperty("text", "columnName")
});
table.bindColumns("/columns", oColumnTemplate);

и избраните ListItems вече ще рендират таблица с колони в правилния ред.

person Qualiture    schedule 11.02.2014