Обрабатывает поведение события ПОДТВЕРЖДЕНИЯ для SelectDialogBox

#javascript #sapui5

#javascript #sapui5

Вопрос:

У меня есть список записей. Для отображения списка я использую sap.m.SelectDialog:

 <SelectDialog id="idSelDgAddSupervisor" confirm="handleConfirm" growingThreshold="2000" growing="true" showClearButton="true"
        items="{items}" multiSelect="true"
        liveChange="handleSearch" title="{i18n>Choose}"
         autoAdjustWidth="true" growingScrollToLoad="true">
        <StandardListItem id="idItem" description="{Name}"
            iconDensityAware="false" iconInset="false"
            title="{Plant}" type="Active"/>
    </SelectDialog>
  

введите описание изображения здесь

Кроме того, я поместил окно сообщения «предупреждение» в функцию handleConfirm(), если пользователь выбирает более одной записи. Что-то вроде этого:

введите описание изображения здесь

ЧТО ПРОИСХОДИТ ПРЯМО СЕЙЧАС, когда пользователь выбирает более одной записи, отображается предупреждающее сообщение, НО оно закрывает всплывающее окно выбора перед отображением всплывающего окна.

ЧЕГО я ХОЧУ ДОБИТЬСЯ Когда пользователь нажимает кнопку «ОК» в предупреждающем сообщении, он должен вернуться к экрану выбора записи, и всплывающее окно выбора не должно закрываться, пока пользователь не выберет ТОЛЬКО одну запись.

Возможно ли это? Заранее спасибо.

Комментарии:

1. Пожалуйста, покажите ваш код для контроллера.

Ответ №1:

Я нашел решение для этого. Что я сделал, так это то, что в событии OnClose диалога я уничтожил идентификатор диалога и повторно открыл тот же диалог после уничтожения идентификатора (чтобы избавить мой код от генерации ошибки «дублированный идентификатор элемента»).).

Ответ №2:

Я думаю, что selectDialog автоматически закрывается.

Теперь вы можете обойти это, установив Select в диалоговом окне, которое вы сможете открывать и закрывать по событию.

Точно так же я понимаю, что ваш пользователь может выбрать ТОЛЬКО ОДНУ запись, так почему multiSelect имеет значение true? если вы установите для него значение false, будет выбрана только одна запись и нет необходимости выводить диалоговое окно с предупреждением.