DevExpress控件-TreeList+searchControl组合过滤实现(图文)
2016-05-04 14:39
2326 查看
以下效果TreeList必须先绑定数据源,绑定方法如下:
this.treeList1.KeyFieldName = "id";
this.treeList1.ParentFieldName = "parentId";
this.treeList1.DataSource = ds.Tables[0];
效果一:
实现代码如下:
/// <summary>
/// 窗体加载
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void FrmMain_Load(object sender, EventArgs e)
{
//指定行为客户端为treeList1
this.txt_search.Client = this.treeList1;
//定义TreeList过滤事件
treeList1.FilterNode += treeList1_FilterNode;
}
/// <summary>
/// 过滤事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void treeList1_FilterNode(object sender, DevExpress.XtraTreeList.FilterNodeEventArgs e)
{
if (treeList1.DataSource == null) return;
string NodeText = e.Node.GetDisplayText("name");//参数填写FieldName
if (string.IsNullOrWhiteSpace(NodeText)) return;
bool IsVisible = NodeText.ToUpper().IndexOf(txt_search.Text.ToUpper()) >= 0;
if (IsVisible)
{
DevExpress.XtraTreeList.Nodes.TreeListNode Node = e.Node.ParentNode;
while (Node != null)
{
if (!Node.Visible)
{
Node.Visible = true;
Node = Node.ParentNode;
}
else
break;
}
}
e.Node.Visible = IsVisible;
e.Handled = true;
}
效果二:
实现代码如下:
/// <summary>
/// 窗体加载
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void FrmMain_Load(object sender, EventArgs e)
{
//指定行为客户端为treeList1
this.txt_search.Client = this.treeList1;
//开启过滤功能
treeList1.OptionsBehavior.EnableFiltering = true;
//过滤模式,枚举1.Default 2.Extended(推荐) 3.Smart(推荐) 4.Standard
treeList1.OptionsFilter.FilterMode = FilterMode.Standard;
//定义TreeList过滤事件
treeList1.FilterNode += treeList1_FilterNode;
}
/// <summary>
/// 过滤事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void treeList1_FilterNode(object sender, DevExpress.XtraTreeList.FilterNodeEventArgs e)
{
if (treeList1.DataSource == null) return;
string NodeText = e.Node.GetDisplayText("name");//参数填写FieldName
if (string.IsNullOrWhiteSpace(NodeText)) return;
bool IsVisible = NodeText.ToUpper().IndexOf(txt_search.Text.ToUpper()) >= 0;
if (IsVisible)
{
DevExpress.XtraTreeList.Nodes.TreeListNode Node = e.Node.ParentNode;
while (Node != null)
{
if (!Node.Visible)
{
Node.Visible = true;
Node = Node.ParentNode;
}
else
break;
}
}
e.Node.Visible = IsVisible;
e.Handled = true;
}
this.treeList1.KeyFieldName = "id";
this.treeList1.ParentFieldName = "parentId";
this.treeList1.DataSource = ds.Tables[0];
效果一:
实现代码如下:
/// <summary>
/// 窗体加载
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void FrmMain_Load(object sender, EventArgs e)
{
//指定行为客户端为treeList1
this.txt_search.Client = this.treeList1;
//定义TreeList过滤事件
treeList1.FilterNode += treeList1_FilterNode;
}
/// <summary>
/// 过滤事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void treeList1_FilterNode(object sender, DevExpress.XtraTreeList.FilterNodeEventArgs e)
{
if (treeList1.DataSource == null) return;
string NodeText = e.Node.GetDisplayText("name");//参数填写FieldName
if (string.IsNullOrWhiteSpace(NodeText)) return;
bool IsVisible = NodeText.ToUpper().IndexOf(txt_search.Text.ToUpper()) >= 0;
if (IsVisible)
{
DevExpress.XtraTreeList.Nodes.TreeListNode Node = e.Node.ParentNode;
while (Node != null)
{
if (!Node.Visible)
{
Node.Visible = true;
Node = Node.ParentNode;
}
else
break;
}
}
e.Node.Visible = IsVisible;
e.Handled = true;
}
效果二:
实现代码如下:
/// <summary>
/// 窗体加载
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void FrmMain_Load(object sender, EventArgs e)
{
//指定行为客户端为treeList1
this.txt_search.Client = this.treeList1;
//开启过滤功能
treeList1.OptionsBehavior.EnableFiltering = true;
//过滤模式,枚举1.Default 2.Extended(推荐) 3.Smart(推荐) 4.Standard
treeList1.OptionsFilter.FilterMode = FilterMode.Standard;
//定义TreeList过滤事件
treeList1.FilterNode += treeList1_FilterNode;
}
/// <summary>
/// 过滤事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void treeList1_FilterNode(object sender, DevExpress.XtraTreeList.FilterNodeEventArgs e)
{
if (treeList1.DataSource == null) return;
string NodeText = e.Node.GetDisplayText("name");//参数填写FieldName
if (string.IsNullOrWhiteSpace(NodeText)) return;
bool IsVisible = NodeText.ToUpper().IndexOf(txt_search.Text.ToUpper()) >= 0;
if (IsVisible)
{
DevExpress.XtraTreeList.Nodes.TreeListNode Node = e.Node.ParentNode;
while (Node != null)
{
if (!Node.Visible)
{
Node.Visible = true;
Node = Node.ParentNode;
}
else
break;
}
}
e.Node.Visible = IsVisible;
e.Handled = true;
}
相关文章推荐
- java-使用字符串输出对象
- XML中必须进行转义的字符
- Andriod 本地存储数据的几种方式
- Tomcat中server.xml文件内各节点详解
- openHEVC学习笔记:解码器中的数据
- 高效求素数(质数)即素数判定
- line ending对AWK print的影响
- Fragment和Activity之间的数据传递(两种:Acitvity-->Fragment;Fragment---->Activity)
- 微信支付开发-从零开始-Part1
- Centos 6.5 - Red Hat 6.5 时区更改
- ruby on rails ,extjs框架下的ajax使用
- 整理iOS9适配中出现的坑(图文)
- 构建之法阅读笔记04
- 上传excel中的内容到服务器
- 数据库死锁及oracle死锁介绍
- JSP分页技术(jsp+servlet)
- Android加载器加载本地图片
- Struts2中redirect基本的经验之谈
- OC 的那点事儿
- 最短路径问题 HDU 3790