У меня возникла проблема с переходом вперед. В принципе, когда пользователь находится на странице и внес изменения без сохранения, а затем нажимает кнопку «назад» или «вперед», они отображаются с подсказкой и двумя вариантами: «Оставить» или «Остаться».Кнопка переадресации GWT
Я внедрил обратную кнопку в порядке, и выбор останова на странице хорошо работает, используя History.newItem (currentToken) - кнопка «Назад» по-прежнему доступна для кликов.
Однако с помощью кнопки форварда, если я использую History.newItem (currentToken), он переносит это на передний край стека истории, и кнопка «вперед» больше не может быть нажата. History.replaceItem (currentToken) вызывает ту же проблему.
Как обработать отмену действия форварда, чтобы я остался на текущей странице, но кнопка форварда по-прежнему включена?
@Override
public void onValueChange(ValueChangeEvent<String> event) {
logger.info("back button pressed: " + event.getValue());
String evenVal = event.getValue();
String token = History.getToken();
AbstractPresenter presenter = sessionKiosk.getCurrentlyShowingPresenter();
if (presenter instanceof NSRCommonWorksheetPresenter && sessionKiosk.isDirty()) {
((NSRCommonWorksheetPresenter)presenter).setHistoryToken(event.getValue());
((NSRCommonWorksheetPresenter)presenter).showUnsavedChangesLeavingPageDialog();
}
else {
handleHistoryEvent(event.getValue());
}
}
Диалоговое окно отображается, и когда я нажимаю кнопку «Оставаться на странице», вызывается следующее.
public void stayOnCurrentPage() {
if (eventMap.get(prevPage) != null) {
History.newItem(prevPage, false);
}
}
Обновление: В основном history.newItem (значение) удаляет использование кнопки «вперед». Есть ли другой способ отменить мероприятие? Если я просто ничего не делаю, страница останется там, где я хочу, но url все еще обновляет
Ни один из 3 вариантов в инструкции else не работает. Спасибо.
Просим вас выслать ваш код. –