Re[4]: WebPart, обработка ошибок
От: Polevi  
Дата: 24.11.08 08:30
Оценка:
//базовый класс
public class WebControlBase : UserControl
{
// перегружаем тут виртуальные методы по вкусу
}

//класс DAO
public static class DAO
{
public static string[] SelectData()
{
return new string[] { "one", "two", "three" };
}
}

//главная страница
<%@ Page Language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">

protected override void CreateChildControls()
{
base.CreateChildControls();
Form.Controls.Add(LoadControl("WebUserControl.ascx"));
}

</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>

</div>
</form>
</body>
</html>


//аscx — наследник WebControlBase

<%@ Control Language="C#" ClassName="WebUserControl" Inherits="WebControlBase" %>

<script runat="server">

</script>

<asp:ObjectDataSource ID="ods1" runat="server" TypeName="DAO" SelectMethod="SelectData"></asp:ObjectDataSource>
<asp:DetailsView ID="dv1" runat="server" DataSourceID="ods1" AutoGenerateDeleteButton="true"></asp:DetailsView>


Если нажать на кнопку Delete — возникнет исключение (DAO слой не содержит нужного метода), которое никак не перехватить в базовом классе WebControlBase
Мысли у меня закончились.. разве что писать своих наследников DetailsView, GridView и тд с нужной реализацией IPostBackEventHandler
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.