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
(非通用的)。
文档中是否有讨论此内容的地方?
不确定这是否对您有帮助,但是在您提到的类上使用 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