Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
11.09.2006, 21:35
|
|||
|---|---|---|---|
|
|||
Заценити |
|||
|
#18+
Навял пару контролов для обработки исключений. ExceptionValidator — Не валиден если вызвать void Exception(Exception ex) DetailsViewValidator — Присоединяется(с помощью AssociatedControlID) к DetailsView и обрабатывает исключения при Insert, Update и Delete. Хотелосьбы услышать отзывы и довести дело до ума. using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; namespace mycontrol { public class ExceptionValidator : Label, IValidator { private Exception LastException = null; public ExceptionValidator() { ForeColor = System.Drawing.Color.Red; } public void Exception(Exception ex) { LastException = ex; } public string ErrorMessage { get { if (IsValid) return "Valid"; else return LastException.ToString(); } set { } } public bool IsValid { get { return LastException == null; } set { } } public void Validate() { } public override string Text { get { return ErrorMessage; } } protected override void Render(HtmlTextWriter writer) { if (!IsValid || DesignMode) base.Render(writer); } } public class DetailsViewValidator : ExceptionValidator { private string _associatedControlID; public string AssociatedControlID { get { return _associatedControlID; } set { _associatedControlID = value; } } protected override void OnInit(EventArgs e) { base.OnInit(e); DetailsView dv = (DetailsView)Parent.FindControl(AssociatedControlID); dv.ItemInserted += new DetailsViewInsertedEventHandler(AssociatedControl_ItemInserted); dv.ItemUpdated += new DetailsViewUpdatedEventHandler(AssociatedControl_ItemUpdated); dv.ItemDeleted += new DetailsViewDeletedEventHandler(AssociatedControl_ItemDeleted); } void AssociatedControl_ItemDeleted(object sender, DetailsViewDeletedEventArgs e) { if (e.Exception != null) { Exception(e.Exception); e.ExceptionHandled = true; } } void AssociatedControl_ItemUpdated(object sender, DetailsViewUpdatedEventArgs e) { if (e.Exception != null) { Exception(e.Exception); e.ExceptionHandled = true; } } void AssociatedControl_ItemInserted(object sender, DetailsViewInsertedEventArgs e) { if (e.Exception != null) { Exception(e.Exception); e.ExceptionHandled = true; } } } } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=18&mobile=1&tid=1389702]: |
0ms |
get settings: |
6ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
167ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
19ms |
get tp. blocked users: |
1ms |
| others: | 228ms |
| total: | 445ms |

| 0 / 0 |
