1

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

我记得我每次都提前做了很多次,中间有几个月或几年的时间间隔。我想有一次,我回溯DataSource到是一个IListSource,但我可能是错的。或者我可能会将这种情况与DataSourceWinForms 数据绑定控件的属性混淆。

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

我还在研究 DevExpress 控件和 DevExpress MVC 扩展,它们真正继承自然后将数据绑定委托给 ASP.NET 服务器端控件类。它们还将DataSource属性声明为 object 类型,因为它们将绑定委托给 ASP.NET 控件本身。

即使在 DevExpress Extension 套件中,类的DataSource属性也DevExpress.Web.ASPxClasses.ASPxDataWebControlBase被声明为 type object

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

文档中是否有一些地方谈到了这一点?

4

2 回答 2

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();
    }
于 2013-11-23T22:48:08.930 回答
-1

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

在线帮助文​​档:

WebForms DevExpress ASP.NET GridView

MVC 数据绑定

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

于 2013-09-17T20:30:46.580 回答