2015-09-17 9 views
0

У меня есть кнопка ASP.NET, которая занимает 1-2 секунды обработки на стороне сервера. Чтобы предотвратить появление нескольких кликов, отключить кнопку, как показано ниже:ASP.NET Включить отключенную кнопку в браузере Назад

<asp:Button Text="Click Me" runat="server" ID="btnClickMe" OnClick="btnClickMe_Click" UseSubmitBehavior="false" OnClientClick="this.disabled = true;" /> 

protected btnClickMe_Click(object sender, EventArgs e) 
{ 
    Thread.Sleep(2000); // Simulate work 
    Response.Redirect("AnotherPage.aspx"); 
} 

Как можно повторно активировать кнопку, когда пользователь нажимает кнопку назад браузера?

Я попытался установить для кнопки значение true в событии Page_Load, но это не сработало.

+0

http://stackoverflow.com/questions/22481553/refresh- page-on-back-click-mvc-4 – Greg

+0

Я использую приложение веб-форм ASP.NET, а не MVC, и я не хочу использовать JavaScript window.onunload из-за других функций страницы. Любые другие предложения? –

+0

Я сделал быстрый тест, и я не могу воспроизвести вашу проблему. Какой браузер вы используете? –

ответ

0

Это сработало для меня. Я добавил это в начале функции JavaScript:

$("#btnClickMe").attr("disabled", "disabled"); 

И это в случае успеха или ошибки моего AJAX вызова:

$("#btnClickMe").removeAttr("disabled"); 
+0

Я не пробовал, но я считаю, что это будет работать, только если я выполняю чисто клиентский код, и в этом случае я бы принял его в качестве ответа. Однако мое событие нажатия кнопки обрабатывается на стороне сервера. –

+0

Я не знаю, используете ли вы Ajax или нет, но я устанавливаю отключенный атрибут в начале функции JavaScript, а затем удаляю его при успешном завершении или неудаче моего вызова Ajax. Я обновляю свой ответ, чтобы отразить это. – tcrite

Смежные вопросы