Как обрабатывать обработку исключений источника данных объекта в DotNetNuke - PullRequest
2 голосов
/ 29 сентября 2010

Я создал несколько модулей DNN (5.2.3) и обнаружил, что если произойдет ошибка в источнике данных объекта (ODS), DNN покажет эту ошибку всем.Пример (хотя в данном случае ошибка не относится к ODS) показан ниже.Это не имеет никакого значения для пользователя.Исключением должно быть «Вещь не найдена» или что-то подобное пользователю.Проблема в том, что этот DropDownList связан с ODS.Итак, мои вопросы:

  1. Как в DNN я могу переопределить это поведение, чтобы показать полезное сообщение с использованием привязки ODS?
  2. Как в DNN я могу переопределить это поведение, чтобы показать обобщенное исключениедля всех ошибок в текущем модуле, если определенное исключение не может быть перехвачено, чтобы дать пользователю полезное сообщение?

Пример: «SelectedThingDropDown» имеет SelectedValue, который недопустим, потому что его нетсписок предметов.Имя параметра: значение

PS> Я знаю о try / catch Exceptions.ProcessModuleException (e, ex).Проблема в том, что это не работает для привязки ODS, если я не делаю что-то не так.

1 Ответ

1 голос
/ 29 сентября 2010

Есть ряд мест, которые вы можете проверить при работе с ODS и DropDownList. Вот список некоторых из них.

  1. Событие ODS_Selected, проверьте e.Exception: у этого объекта возникают ошибки при вызове предоставленного метода Select. Это ноль, если нет ошибки. Если вы обнаружите ошибку, вы можете отключить ddl и поместить удобное сообщение в метку для уведомления.
  2. Событие DDL_DataBound: Не связывайте напрямую выбранное значение, попробуйте найти элементы dll по значению, например:
ListItem item = ddl.Items.FindByValue('');
if(item != null) item.selected = true;

Имейте в виду, что исключение при загрузке модуля будет иметь место только в том случае, если вы не обрабатываете исключения, если вы чувствуете, что они не являются полезными для пользователя, вы можете переопределить их с помощью собственного метода уведомления пользователя с помощью команды try catch сказал. но не забудьте создать в журнале событий записи об ошибках, чтобы вы могли отслеживать свои ошибки и оптимизировать их.

Удачи.

...