2012-06-02 5 views
1

Мне нужно добавить всплывающее окно «вы уверены» в кнопку удаления, и я не уверен, как получить, щелкнул ли пользователь Ok или Cancel.asp.net всплывающее окно подтверждения

Здесь нет, как я это делаю:

string message = "Are you sure you want to delete this user?"; 
      System.Text.StringBuilder sb = new System.Text.StringBuilder(); 
      sb.Append("return confirm('"); 
      sb.Append(message); 
      sb.Append("');"); 
      Type type = this.GetType(); 
      ClientScript.RegisterOnSubmitStatement(type, "alert", sb.ToString()); 

ответ

5

Вы можете просто установить OnClientClick по кнопке:

return confirm("Are you sure you want to delete this user?"); 

Затем отправить/постбэк не будет если пользователь не нажимает OK.

+0

Да за то, что мне нужно, что работает отлично. Спасибо –

+1

@sd_dracula Мой ответ был первым, и что еще более важно, если вы используете его с помощью 'CausesValidation =" True "', будет отсутствовать ** проверка клиента на отправке, и если вы используете его с UseSubmitBehavior = "False" будет ** no ** отправить действие вообще, потому что JavaScript для этих вещей добавляется на странице Render ** после ** этого фрагмента кода, поэтому ** всегда ** завершающая команда 'return', которая делает это полностью недостижимый (но в моем случае только при отмене). –

2

Самый простой способ это просто добавить к вашей <input type="button|submit|reset" /> или <button /> HTML-разметки (не подавать на отмена): OnClick="if(!confirm('Are you sure?')) return false;"

Переименовать событие OnClientClick для <asp:Button /> - он совместим с CausesValidation="True" и/или UseSubmitBehavior="False", так как он добавляется до их в разметке html.

1

При использовании AJAX управления инструментария просто использовать confirmextender

если вы хотите знать, кнопку которым пользователь нажал попробовать это

добавить скрытое поле в веб-форму

и используйте это, чтобы установить его значение, когда пользователь нажимает «ОК»

sb.Append("if (confirm(").Append(msg).Append("))") 
       .Append("document.getElementById('") 
       .Append(confirmResult.ClientID) 
       .Append("').value = 'ok';"); 

в коде позади прочитать значение confirmResult знать, если пользователь нажал кнопку ОК или отменить

0

Я согласен с выше ответы, но в случае, если вы не хотите смешивать вам сервера и на стороне клиента код/​​событий, то я хотел бы предложить вам пойти с кнопкой AjaxToolKit подтверждающим http://bit.ly/NtmpOT

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