如何在DotNetNuke中处理对象数据源异常处理

时间:2010-09-28 20:00:27

标签: asp.net exception-handling objectdatasource dotnetnuke

我创建了几个DNN(5.2.3)模块,我发现如果对象数据源(ODS)上发生错误,DNN将向每个人显示该错误。下面显示了一个示例(虽然在这种情况下不是ODS特定错误)。这对用户没有意义。异常应该是“未找到的东西”或类似的东西给用户。问题是这个DropDownList绑定到ODS。所以我的问题是:

  1. 如何在DNN中覆盖此行为以使用ODS绑定显示有用的消息?
  2. 如果无法捕获特定异常以向用户发送有用的消息,我是否可以在DNN中覆盖此行为以显示当前模块的所有错误的通用异常?
  3. 样品: 'SelectedThingDropDown'具有一个无效的SelectedValue,因为它在项目列表中不存在。参数名称:值

    PS>我知道try / catch Exceptions.ProcessModuleException(e,ex)。问题是这对ODS绑定不起作用,除非我做错了。

1 个答案:

答案 0 :(得分:1)

在处理ODS和DropDownList时,您可以检查多个地方。以下列出了其中一些。

  1. ODS_Selected事件,检查e.Exception:调用Select方法时,此对象出错。如果没有错误,它为null。如果发现错误,可以禁用ddl并在标签中放置用户友好消息以进行通知。
  2. DDL_DataBound事件:不要直接绑定选定的值,尝试按值查找dll项:
  3. ListItem item = ddl.Items.FindByValue('');
    if(item != null) item.selected = true;
    

    请记住,模块加载异常只有在您没有处理异常的情况下才存在,如果您认为它们对用户没有帮助,您可以通过自己的用户通知方法在try catch的帮助下覆盖它们说过。但不要忘记在事件日志中为错误创建条目,以便您可以跟踪错误并对其进行优化。

    祝你好运。