哪些对象可以作为数据控件的数据源
经常使用的对象:DataSet,DataTable,DataView,这些都没有问题,它们均实现了接口:IListSource或IEnumerable,而且微软已经为我们做了很好的封装,在使用时基本上不用考虑太多,甚至不需要知道它们分别实现了什么接口。
使用 DataSource 属性指定要绑定到数据列表控件的值的源。
数据源必须是实现 System.Collections.IEnumerable 接口(例如 System.Data.DataView、System.Collections.ArrayList 或 System.Collections.Hashtable)或 IListSource 接口的对象,才能绑定到从 BaseDataList 类派生的控件。
在设置 DataSource 属性时,必须手动编写代码才能执行数据绑定。
如果由 DataSource 属性指定的数据源包含多个数据的源,请使用 DataMember 属性指定要绑定到该控件的特定的源。例如,如果有包含多个表的 System.Data.DataSet 对象,必须指定要绑定到控件的表。指定了数据源后,使用 DataBind 方法将数据源绑定到控件。
扩展资料
数据源控件的功能
1、无需编写任何代码,即可向 ASP.NET 网页添加数据选择和更新。
2、使用一致的模型将服务器控件绑定到数据源,而不管基础数据采用何种形式。例如,通过使用不同的数据源控件,可以提供对 SQL Server、Microsoft Access。
XML 文件或中间层业务对象的数据访问。您可以使用相同的属性设置将控件(如 GridView 或 ListBox 控件)绑定到这些完全不同的数据源,而无需了解数据源控件最终是如何与基础数据进行交互的。
3、执行方法以获取和更新数据。您可以将参数传递给方法,参数可以自动从控件属性、查询字符串、会话状态或其他位置提取其参数值。
4、使用属性设置以确定数据源控件是否支持更新、插入、排序等功能。
2023-08-15 广告
BaseDataList
类派生的控件。在设置DataSource属性时,必须手动编写代码才能执行数据绑定。
如果由DataSource属性指定的数据源包含多个数据的源,请使用DataMember属性指定要绑定到该控件的特定的源。例如,如果有包含多个表的
System.Data.DataSet
对象,必须指定要绑定到控件的表。指定了数据源后,使用DataBind方法将数据源绑定到控件。
问题就在于如果我们使用泛型List的时候呢?它也是实现了IEnumerable接口,但是大家会想到,List中放置任何对象都可以作为数据源吗?我们来看下面的代码:
class Student{public Student(string n, string s){name = n;sex = s;}public string name;
List<Student list = new List<Student();
list.Add(new Student("河北","1"));
list.Add(new Student(北京", "2"));
gridview1.DataSource = list;
gridview1.DataBind();
执行时会得到如下错误信息:
ID 为gridview1的 GridView 的数据源没有任何可用来生成列的属性或特性。请确保您的数据源有内容。
我们将类定义代码修改如下:
class Student{public Student(string n, string s){name = n;sex = s;}private string name;
public string Name{get { return name; }
set { name = value; }}private string sex;
public string Sex{get { return sex; }
set { sex = value; }}}再执行没有问题了。
广告 您可能关注的内容 |