我将gridview绑定到一个愚蠢的业务对象。该业务对象有30个字段&我只需要在gridview中显示8,因此业务对象的其余字段都被浪费了。
我被建议为此目的设计一个DTO。我设计了一个DTO,但它看起来与一个愚蠢的业务对象本身没什么不同?
目前我有网格的DTO,它的集合类List <DTO>
和一个DAL类。我在DAL中填写DTO并将其返回到表示层。
这是正确的方法吗?我是否必须为DTO制作基类?
我的DTO atm看起来像这样
public class ftMasterSummaryDTO
{
private int ftId;
private DateTime entryDate=DateTime.MinValue;
private int ftYear;
private string ftCateg=string.Empty;
private string ftType=string.Empty;
public int FtId
{
get { return ftId; }
set { ftId = value; }
}
public DateTime EntryDate
{
get { return entryDate; }
set { entryDate = value; }
}
public int FtYear
{
get { return ftYear; }
set { ftYear = value; }
}
public string FtCateg
{
get { return ftCateg; }
set { ftCateg = value; }
}
public string FtType
{
get { return ftCateg; }
set { ftCateg = value; }
}
}
答案 0 :(得分:3)
使用ObjectDataSource
将GridView 绑定到自定义业务对象。创建一个DTOManager类,它将返回您的DTO的IList。然后在GridView的设计模式中,您可以删除不希望显示的颜色。
您的DTOManager类可能如下所示。
/// <summary>
/// Business Manager class for DTO object
/// </summary>
[DataObjectAttribute()]
public class DTOManager
{
/// <summary>
/// Function to get all DTOs records
/// </summary>
/// <returns>Returns List of DTOs</returns>
[DataObjectMethod(DataObjectMethodType.Select, true)]
public static IList<DTO> GetDTOs()
{
return DTO_DB.GetAll();
}
}
注意:然后,您可以在设计模式下将GridView绑定到ObjectDataSource。您的ObjectDataSource配置向导将自动检测[
DataObjectAttribute
] DTOManager及其SELECT方法GetDTOs。