Пакетное редактирование таблицы таблиц SAPUI5

Atul Chaudhary спросил: 28 марта 2018 в 03:27 в: sapui5

Я работаю с пакетным редактированием таблицы SAPUI5 (редактируемая или нередактируемая ячейка). Я думаю о двух вариантах, упомянутых ниже, но я не уверен, могу ли я это достичь или это даже поддерживается таблицей Grid.

  1. Я хочу щелкнуть ячейку сетки и изменить управление от текста до ввода, чтобы я мог редактировать запись и сохранять ее позже.

  2. Сохраняйте редактируемый вход в false и, щелкнув ячейку или ввод, в зависимости от того, что будет легко, измените ввод редактируемого к истине. Я пытался эту опцию, но как только редактируемый вход установлен на false, никакое событие не запускается на вход, поэтому он не может вообще изменять состояние.

Кроме того, Я заметил, что настройка, редактируемая на false в Table сама по себе, не делает ничего, по крайней мере, в моем случае это ничего не делает.

Будет оценена любая помощь или руководство.


2 ответа

Есть решение
Rafael López Martínez ответил: 29 марта 2018 в 02:10

Чтобы использовать несколько типов элементов управления, вам нужно обрабатывать их конкретные события. Попробуйте установить скрытые элементы управления и обрабатывать их события, чтобы сделать их видимыми или нет.

Вид

<VBox>
  <Link text="{OrderID}" press="onSFPressed" visible="true"/>
  <Input value="{OrderID}" submit="onSFSubmitted" change="onSFChanged" visible="false"/>
</VBox>

Контроллер

onSFPressed: function(oEvent){
    var oText = oEvent.getSource();
    var oInput = oEvent.getSource().getParent().getItems()[1];    oText.setVisible(false);
    oInput.setVisible(true);
},onSFSubmitted: function(oEvent){
    var oText = oEvent.getSource().getParent().getItems()[0];
    var oInput = oEvent.getSource();    oText.setVisible(true);
    oInput.setVisible(false);
},onSFChanged: function(oEvent){
    var oText = oEvent.getSource().getParent().getItems()[0];
    var oInput = oEvent.getSource();    oText.setVisible(true);
    oInput.setVisible(false);
}

Вот фрагмент: https://plnkr.co/edit/nSMv3BZoifdQaqWYtZgM?p=preview

Atul Chaudhary ответил: 29 марта 2018 в 12:05
Спасибо за ваш ответ, но интеллектуальное поле не будет работать для выбора или ввода с предложениями. Пожалуйста, поправьте меня, если я ошибаюсь?
Rafael López Martínez ответил: 29 марта 2018 в 02:12
Если вы хотите использовать разные элементы управления в качестве входных данных, вы должны обрабатывать их конкретные события. Я отредактировал свой ответ и фрагмент с помощью функции Показать / Скрыть. Взглянуть!!
Atul Chaudhary ответил: 29 марта 2018 в 02:16
Мне нравится этот подход, почему я не думал об этом. Ценю, что я это немного изменю, но спасибо, что дали мне идею.
Andrii Naumovych ответил: 29 марта 2018 в 09:05

Похоже, что эта функция нужна вам только для визуального представления (вы не хотите видеть необработанный ввод в каждой ячейке таблицы сетки).

Самое простое решение - использовать Элемент управления sap.m.Input в каждой ячейке и игра с CSS, чтобы подделать sap.m.Text , если он не сфокусирован.

Я создал простой пример: http://jsbin.com/ziwoyel/edit?html,js,output

CSS:

 .myCustomInputClass input {
    border: 0;
    background: none;
  }

Это самый простой и Облегченное решение.

Если вам действительно требуется переключение между двумя элементами управления, я бы порекомендовал создать собственный элемент управления, который включает в себя логику переключения между двумя состояниями (2 элемента управления) на основе фокусировки событий ввода / вывода.

Atul Chaudhary ответил: 29 марта 2018 в 12:06
Есть ли что-нибудь, что поддерживается SAPUI5 из коробки для такой функциональности? Хотя, сказав, что мне очень понравилась идея иметь собственный элемент управления.
Andrii Naumovych ответил: 29 марта 2018 в 02:29
Не понял твою точку зрения. Существует действующий API SAPUI5 для создания пользовательских элементов управления (подход был хорошо документирован в API). Какова основная причина такого требования?
Atul Chaudhary ответил: 29 марта 2018 в 02:00
Извините, если мне неясно, я согласен с вашим подходом использования пользовательского элемента управления, и я знаю, что это правильный подход. То, что я имею в виду под моим комментарием выше, было ли какое-либо свойство или конфигурация в таблице сетки, которые позволяют пакетное редактирование.