?

Log in

No account? Create an account
Dotnet_am

dotnet_am


C# и платформа .NET в вопросах и ответах

.NET технологии в Армении


Previous Entry Share Next Entry
4.1.3. Диалог подтверждения (OK, Cancel) для кнопки в ASP.NET
Dotnet_am
dotnet_am

Предположим, у вас на странице есть кнопка при нажатии которой происходит какое-нибудь необратимое действие (например удаляется информация) и необходимо сперва запросить подтверждение.
Самый простой способ сделать это:
В свойстве OnClientClick кнопки пишем return confirm('Click OK to delete the Account');
Все.

Теперь при нажатии на кнопку будет появляется диалог с кнопками OK и Cancel. При нажатии Cancel обработчик  не сработает.
Естественно,  текст 'Click OK to delete the Account' можно заменить на любой подходящий в конкретной ситуации.


Ограничения и недостатки:
1. Свойство OnClientClick появилось в ASP.NET 2.0
2. Если в браузере отключен JavaScript то диалог подтверждения не будет показан, но обработчик нажатия кнопки сработает, как если бы нажали OK.
3. По умолчанию фокус в диалоге получает кнопка OK и исправить это каким-либо очевидным способом невозможно.


  • 1
Немного поадвансим :)

Можно стандартную функцию confirm или alert поменять на собственный код который скажем откроет новое окно с нужным нам дизайном и функционалом

Делается это так

if(document.getElementById) {
window.alert = function(txt) {
CustomAlert(txt);
}
}

function CustomAlert(txt)
{
// Наш код
}

Дизайн фигня. Тут важно то, что по дефолту фокус на OK падает - это плохо. Один случайний Enter - и все.
Ради этого стоит писать Custom dialog.
А вот пример http://aspalliance.com/1366_Building_a_Custom_Confirmation_Dialog_Box.all

А про подмену стандартных функций alert, confirm я не знал - спасибо.

кстати очень полезно когда решаешь использовать какой нить контрол суит типа телерика, просто пишешь в CustomAlert вызов RadAlert и все, все стандартные алерт боксы поменяются на телериковские

  • 1