黑马程序员--数据筛选和排序

---------------------- Windows Phone 7手机开发.Net培训、期待与您交流! ----------------------

一、TreeView控件

1、认识TreeView控件

1> 简介

树状控件(TreeView)用于以节点形式显示文本或数据,这些节点按层次结构的顺序排列

2> TreeView的主要属性和事件

属性说明

-------------------------------------------------------------------------

Nodes TreeView所有根节点

ImageList 存放TreeView中节点的图像

ImageIndex 节点默认的图像索引

SelectedImageIndex 节点选中时的图像的索引

SelectedNode 当前选中的节点

-------------------------------------------------------------------------

事件说明

-------------------------------------------------------------------------

AfterSelect 节点选中后发生

3> TreeView控件的Node属性(TreeNode

属性说明

---------------------------------------------------------------------------------------------

Text 节点上的文字

ImageIndex 节点默认的图像索引。如果不设置,将保持与

TreeView的设置相同

SelectImageIndex 节点选中时图像的索引。如果不设置,将保持

TreeView的设置相同

Level 节点在树中的深度,从0开始

Nodes 当前节点包含的子节点的集合

ParentNode 当前节点的父节点

二、DataView

1、认识DataView

1> 简介

DataView为我们提供了DataTable的动态视图,并可以对动态生成的视图中的数据进行排序、筛选等操作

2> 语法

DataView 数据视图名 = newDataView(DataTable对象);

DataView 数据视图名 =DataTable对象.DefaultView;

例如:为MySchool系统的数据库表Student创建DataView对象的代码:

DataSet dat = new DataSet();

DataView dv = new DataView(dat.Tables["Student"]);

DataSet dat = new DataSet();

DataView dv = dat.Tables["Student"].DefaultView;

3> 主要属性

属性说明

-------------------------------------------------------------------------------------

Table 用于获取或设置源DataTable

Sort 获取或设置DataView的一个或多个排序列以及

排序顺序

RowFilter 获取或设置用于筛选在DataView中查看哪些行

的表达式

Count 在应用RowFilter后,获取DataView中的行数

2、利用DataView实现数据筛选

//实现在‘学校信息列表’窗体中使用DataView筛选出符合用户选中节点的学生记录,并在DataGridView控件中显示的功能

///<summary>

///按选择的条件筛选

///</summary>

private void Filter()

{

//创建DataView对象

DataView dv = new DataView(dt.Tables["Student"]);

//筛选条件

string rowFilter = string.Empty;

//......获取用户选中的节点

//年级级别的节点

if(tvMenu.SelectedNode.Level == 1)

{

string gradeName = tvMenu.SelectedNode.Text;

rowFilter =string.Format("GradeName='{0}'",gradeName);

}

//性别级别的节点

if(tvMenu.SelectedNode.Level == 2)

{

//性别的枚举值

Gender gender = (Gender)Enum.Parse(typeof(Gender),tvMenu.SelectedNode.Tag.ToString())

intgenderId = (int)gender;

//筛选条件

rowFilter =string.Format("GradeName='{0}' and Gender='{1}'",tvMenu.SelectedNode.Parent.Text,genderId);

}

dv.RowFilter = rowFilter; //设置筛选条件

dv.Sort = "StudentNamedesc"; //指定排序条件

dataGridView1.DataSource = dv; //绑定数据源

----经验---------------------------------------------------------------------------------------------------------------------------------------

在开发中,如果需要对DataGridView展示的数据进行动态筛选数据或排序,我们最好使用DataTable

DefaultView(默认视图)属性来得到DataTable的视图,这样,可以减少实例化DataView对象的步骤

--------------------------------------------------------------------------------------------------------------------------------------------------

---------------------- Windows Phone 7手机开发.Net培训、期待与您交流! ----------------------
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值