如何为我的gridview实现DTO?

时间:2010-07-09 05:07:44

标签: c# asp.net

我将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; }
    }

}

1 个答案:

答案 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。