.NET: нажатие кнопки «назад» портит мой обработчик событий - PullRequest
0 голосов
/ 25 февраля 2009

Привет всем. У меня есть страница ASP.NET, на которой перечислены группы учетных записей пользователей.

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

Я также могу искать пользователей, что сужает список. Это событие называется btnSearch_click

Если я нажимаю на пользователя, вызывается LinkChosen (), и я перехожу на новую страницу. Если я нажму кнопку «Назад» и попытаюсь выполнить поиск, вместо того, чтобы запустить btnSearch_click (), он все равно вызовет событие LinkChosen () и перенесет меня в учетную запись, которую я просматривал, прежде чем нажать кнопку назад. Выполнение поиска до нажатия на учетную запись работает так, как должно.

Я использую C # и ASP.NET, и эта ошибка появляется в IE, но не в Firefox.

У кого-нибудь есть идеи?

Спасибо.

Редактирование разъяснений: Действие "показывать один аккаунт" - это гиперссылка, а не кнопка. :)

Ответы [ 3 ]

1 голос
/ 25 февраля 2009

Нажимаете ли вы клавишу ввода при выполнении поиска. В этом случае первой кнопкой на странице обычно является та, которая будет отправлена ​​нажатием клавиши Enter.

Вы можете установить DefaultButton на странице или на панели.

Так что если вам нужны две кнопки, чтобы обе реагировали на нажатия Enter в соответствующих частях страницы, оберните их обе в их собственную asp: панель с установленным DefaultButton.

0 голосов
/ 25 февраля 2009

Обычно я вижу, что браузер заставляет вас обновлять страницу после возврата. Таким образом, чтобы действительно что-то сделать, вы повторно публикуете страницу, которая повторно отправляет клик. Можете ли вы использовать обычную гиперссылку asp: вместо кнопки asp: link. Вы сохраните обратную передачу и полностью избежите проблемы.

0 голосов
/ 25 февраля 2009

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

Я бы проверил, как обработчики событий были подключены (code-front или code-behind), если в codebehind вы уверены, что они связаны правильно.

Вы пытались очистить кеш браузера? может быть, кнопка возврата возвращает вас к более старой версии страницы?

просто мысль ... не могли бы вы использовать старый добрый asp: hyperlink или href = "", чтобы перевести вас на страницу с одной учетной записью? То есть, ShowAccount.aspx (или как вы там его называли) принимают параметр запроса, который указывает, какую учетную запись показывать? (вместо использования postback / response.redirect), чтобы попасть на страницу? Я считаю, что предоставление ресурсов, доступных непосредственно по URL-адресам, в целом облегчает разработку. (хотя это не связано с вашей конкретной ошибкой)

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