日期:2014-05-18  浏览次数:20483 次

这两端有什么不同?
第一段是直接将DataTable绑定到GridView
代码是:
DataTable   dataTable   =   dataSet.Tables[ "Customers "];
GridView1.DataSource   =   dataTable;
GridView1.DataBind();
第二段是把DataView绑定到GridView
代码是:
DataTable   dataTable   =   dataSet.Tables[ "Customers "];
DataView   dataView   =   new   DataView(dataTable);
GridView1.DataSource   =   dataView;
GridView1.DataBind();

这有什么不同?什么情况下用DataTable   什么情况下用DataView


------解决方案--------------------
看看DataView的定义就知道了。
表示用于排序、筛选、搜索、编辑和导航的 DataTable 的可绑定数据的自定义视图。

如果只是你上面那样写就没有什么区别了
------解决方案--------------------
没有区别
事实上如果你将DataGrid/GridView/DataList/Repeater等数据绑定控件的DataSource设置为DataTable的话,最后作为绑定数据源的就是DataTable.DefaultView,而new DataView(DataTable)也是DataTable.DefaultView

DataView设计就是用于数据绑定的,DataView在数据绑定与DataTable这个数据容器间充当桥梁作用。DataView可以对数据进行筛选。
------解决方案--------------------
实际上 DataGrid/GridView/DataList/Repeater等数据绑定控件内部会使用 DataView 作为真正的绑定数据源的