Имя столбца таблицы не обновляется при изменении модели

Я создаю таблицу:

oTable.setModel(new sap.ui.model.json.JSONModel(oData));
        oTable.bindAggregation("items", "/items", new sap.m.ColumnListItem({
            cells: oData.cols.map(function (colname) {
                return new sap.m.Label({ text: "{" + colname + "}" });
            })
        }));

Затем я хочу изменить модель (она содержит строки и столбцы):

oTable.setModel(new sap.ui.model.json.JSONModel(NEWoData));
    model =oTable.getModel();
    model.refresh();

Но после обновления я вижу новые данные (: D), но старое имя столбца!


person padibro    schedule 18.06.2014    source источник
comment
Вы видите старые имена столбцов, так как вы не изменили агрегацию ячеек для использования новой модели; он по-прежнему ссылается на oData.cols.map ;-)   -  person Qualiture    schedule 18.06.2014
comment
спасибо! Как я могу изменить ссылки? Я решил удалить модель oTable.getModel().destroy(); oTable.setModel(new sap.ui.model.json.JSONModel(oData)); Но она мне не нравится...   -  person padibro    schedule 18.06.2014
comment
Используйте ссылку не на oData.cols, а на модель вашей таблицы oTable.getModel().getProperty("cols"), предполагая, что ваша модель имеет свойство cols.   -  person Qualiture    schedule 18.06.2014
comment
cells: oTable.getModel().getProperty("cols").map(function (colname) { return new sap.m.Label({ text: "{" + colname + "}" }); }) не работает :/   -  person padibro    schedule 18.06.2014
comment
Убедитесь, что вы правильно указали путь к «cols», он должен соответствовать структуре вашей модели (если он находится в корне вашей модели, используйте «/ cols»). Можете ли вы опубликовать образец JSBin?   -  person Qualiture    schedule 18.06.2014
comment
хорошо, это мой код: pastebin.com/KmjBQ7Yv Он работает для элементов, но привязка с colus находится в oTable создание времени...   -  person padibro    schedule 18.06.2014
comment
Вы не можете установить модель для своей таблицы до инициализации таблицы. Вам лучше сначала создать свою таблицу, затем установить ее модель, затем связать строки и столбцы. См. пример на jsbin.com/qaqur/1/edit.   -  person Qualiture    schedule 18.06.2014
comment
Я использую sap.m.Table.Table, а не sap.ui.table.Table. У меня только .bindItems, а не .bindRows и .bindColumns   -  person padibro    schedule 18.06.2014
comment
... Ваше решение не работает. Я пытаюсь получить из модели, а не из oData, но когда я меняю модель, я вижу только новые строки, но старое имя столбца... pastebin.com/mgWkenXD   -  person padibro    schedule 18.06.2014
comment
Плохо, не заметил, что вы используете m.table вместо commons.table... Хотя не уверен, почему он не обновит ваши данные. Вы пробовали аннулировать таблицу? sapui5.hana.ondemand. com/sdk/docs/api/symbols/ Я не очень хорошо знаком с m.table, может быть кто-то еще может подсказать   -  person Qualiture    schedule 18.06.2014


Ответы (1)


Попробуйте привязать ячейки ColumnListItem к "/cols"

person Bogdan    schedule 25.06.2014