Есть ли в ASP.NET какой-то нативный способ сделать «сообщение об успехе»?
Скажем, у вас есть что-то вроде ASP.NET ASP: DetailsView для отображения и редактирования одной записи в базе данных.
Записать случаи ошибок просто ... вы добавляете проверку и сводку проверки. Когда ваша форма обновления не проходит проверку, она, естественно, создает помехи: она показывает сообщение проверки и / или сводку проверки. Не требуется ни одного кода позади.
Но затем вы проходите валидацию, и это делает ваше обновление совершенно бесшумным. Нет никакого смысла в том, что что-то случилось, и, похоже, нет никаких настроек по умолчанию, чтобы сделать сообщение об успехе без кода.
Но даже кодовые компоненты сбивают с толку. Какое событие должно показать сообщение об успехе? onItemUpdate, верно? Хорошо, но тогда допустим, что вы сделали еще одно изменение и получили ошибку проверки? Ваше сообщение об успехе остается. Я не смог найти событие, которое надежно отключило бы существующее сообщение об успехе, если бы произошла ошибка проверки.
Это должна быть веб-разработка 101! Почему это так сложно?
РЕДАКТИРОВАТЬ:
Кто-то предложил использовать событие ItemCommand ... Я пробовал это и многие другие события, но это сообщение об успехе просто не исчезнет. Вот код
Мое сообщение в ASP.NET
<label id="successMessage" class="successMessage" runat="server"></label>
И мой тег DataView (упрощенно):
<asp:DetailsView
Id="EditClient"
DataKeyNames="LicenseID"
DataSourceID="MySource"
runat="server"
OnItemUpdated="SuccessfulClientUpdate"
OnItemCommand="ClearMessages">
И мой код позади:
protected void SuccessfulClientUpdate(object sender, DetailsViewUpdatedEventArgs e)
{
successMessage.InnerText = string.Format("Your changes were saved.");
successMessage.Visible = true;
}
protected void ClearMessages(object sender, DetailsViewCommandEventArgs e)
{
successMessage.InnerText = string.Empty;
successMessage.Visible = false;
}
Однако после успешного обновления ничто не может заставить это сообщение исчезнуть, даже не прошло проверку.
2-е РЕДАКТИРОВАНИЕ:
Просто хочу прояснить, что я пытался поместить код ClearMessages в Page_Load. Тем не менее, кажется, что ничто не заставляет эту метку successMessage исчезать, когда я нажимаю обновить 2 раза С ошибкой проверки. Может кто-нибудь предложить какие-либо другие советы по устранению неполадок?