一、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对象的步骤
--------------------------------------------------------------------------------------------------------------------------------------------------