ASPX服务器端数据绑定控件的DataSource属性的最低要求是什么?

时间:2013-09-05 08:28:56

标签: c# asp.net .net asp.net-mvc

我试图追溯可以分配给数据绑定ASP.NET控件的DataSource属性的数据源的最低类型要求。

我记得我曾经多次提前几次这样做几个月或几年。介于两者之间。我想有一次,我追溯到DataSourceIListSource,但我可能错了。或者我可能会混淆WinForms数据绑定控件的DataSource属性。

无论如何,我重新开始了。例如,DataSource类的System.Web.UI.WebControls.BaseDataList属性声明为object

我也在研究DevExpress控件和DevExpress MVC Extensions,它们真正继承并随后将数据绑定委托给ASP.NET服务器端控件类。他们还将DataSource属性声明为对象类型,因为它们将绑定委托给ASP.NET控件本身。

即使在DevExpress扩展套件中,DataSource类的DevExpress.Web.ASPxClasses.ASPxDataWebControlBase属性也被声明为object类型。

那么,最低要求是什么? IEnumerable<T>我想。或者甚至只是IEnumerable(非通用的)。

文档中是否有一些地方可以讨论这个问题?

2 个答案:

答案 0 :(得分:1)

不确定这是否对您有所帮助,但在您提到的类上使用Reflector会显示设置为DataSource属性的对象需要是IListSource和IEnumerable:

    set
    {
        if (((value != null) && !(value is IListSource)) && !(value is IEnumerable))
        {
            throw new ArgumentException(SR.GetString("Invalid_DataSource_Type", new object[] { this.ID }));
        }
        this.dataSource = value;
        this.OnDataPropertyChanged();
    }

答案 1 :(得分:-1)

是的,DevExpress ASP.NET控件可以绑定到支持IEnumerable的任何东西。

在线帮助文​​档:

WebForms DevExpress ASP.NET GridView

MVC Data Binding

希望有所帮助。如果您有其他问题,请随时联系DevExpress支持团队:http://www.devexpress.com/Support/Center/CreateIssue.aspx?issuetype=Question