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

本文关键字:是什么 数据源 服务器端 数据绑定 控件 ASPX 属性 | 更新日期: 2023-09-27 18:30:18

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

记得我之前做过很多次,每次之间都有几个月或几年的间隔。我想有一次,我追溯DataSource是一个IListSource,但我可能是错的。或者可能是我将情况与 WinForms 数据绑定控件的 DataSource 属性混淆了。

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

我还在查看 DevExpress 控件和 DevExpress MVC 扩展,它们实际上继承自服务器端控件类,然后将数据绑定委托给 ASP.NET 服务器端控件类。它们还将 DataSource 属性声明为对象类型,因为它们将绑定委托给 ASP.NET 控件本身。

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

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

文档中是否有讨论此内容的地方?

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

不确定这是否对您有帮助,但是在您提到的类上使用 Reflector 表明设置为数据源属性的对象必须是 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();
    }

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

在线帮助文档:

WebForms DevExpress ASP.NET GridView

MVC 数据绑定

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