——此文章摘自《C#高级编程(第
版)》定价
元 特价
元 购买
图显示了两个网格一个网格显示已添加删除或修改的数据行另一个网格显示状态为上表中一种的行
图
过滤器不仅可以用于可视化的行还可以用于这些行中列的状态在进行ModifiedOriginal 或 ModifiedCurrent选择时这是很明显的这两个状态都在第章介绍过了它们都是基于DataRowVersion枚举的例如如果用户更新了数据行中的一列该行就会在选择ModifiedOriginal或 ModifiedCurrent时显示出来但其实际值可以是从数据库中选择出来的初值(如果选择了ModifiedOriginal)或者DataColumn中的当前值(如果选择了ModifiedCurrent)
() 对数据行进行排序
除了过滤数据外有时还需要对DataView中的数据进行排序可以在DataGrid控件中单击列标题这会按照升序或降序的顺序对该列进行排序如图所示惟一的问题是控件只能对一列进行排序而底层的DataView可以对多个列进行排序
在对数据列进行排序时可以单击列的标题(例如上面的ProductName列)也可以通过代码排序DataGrid会显示一个箭头位图表示对哪一列进行排序
图
要编程设置列的排列顺序可以使用DataView的Sort属性
dataViewSort = ProductName;
dataViewSort = ProductName ASC ProductID DESC;
上面的第一行按照ProductName列对数据排序如图所示第二行按照ProductName列对数据进行升序排序再以ProductID的降序来排序DataView支持对列进行升序或降序排序—— 默认为升序如果选择对DataView中的多个列进行排序DataGrid就不会显示任何排序箭头
网格中的每一列都是强类型化的其排序顺序不是基于列的字符串表示而是基于实际的数据如果DataGrid有一个日期列要对它进行排序网格就会按日期来进行排序而不是按日期字符串来进行排序
[] []