我试图追溯可以分配给数据绑定ASP.NET控件的DataSource
属性的数据源的最低类型要求。
我记得我曾经多次提前几次这样做几个月或几年。介于两者之间。我想有一次,我追溯到DataSource
是IListSource
,但我可能错了。或者我可能会混淆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
(非通用的)。
文档中是否有一些地方可以讨论这个问题?
答案 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
希望有所帮助。如果您有其他问题,请随时联系DevExpress支持团队:http://www.devexpress.com/Support/Center/CreateIssue.aspx?issuetype=Question