绑定 treeview树

一 :

效果

<form id="form1" runat="server">
<asp:TreeView ID="TreeView1" runat="server" Height="300px" Width="200px" SelectAction="Expand">
</asp:TreeView>
</form>

protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
string where = " AND Com_IsTrue=0 AND Com_Status=2 ";
BDTree(where);
}
}

private List<T_CommodityType> list = new List<T_CommodityType>();
private void BDTree( string where )
{
list = bll.GetModelList(where );
AddTree("", null);
}

public void AddTree(string ParentID, TreeNode pNode)
{
if (list.Where(o => o.Com_ParentId.ToString().Equals(ParentID)).Count() == 0)
return;
List<T_CommodityType> clist = list.Where(o => o.Com_ParentId.ToString().Equals(ParentID)).ToList();
foreach (T_CommodityType dc in clist)
{
TreeNode Node = new TreeNode();
if (pNode == null)
{
Node.Value = dc.Com_Id.ToString();
Node.Text = dc.Com_Name;
Node.NavigateUrl = "javascript:SaveSelData(‘" + Node.Text + "‘,‘" + Node.Value + "‘);";
TreeView1.Nodes.Add(Node);
AddTree(dc.Com_Id.ToString(), Node);
}
else
{
Node.Value = dc.Com_Id.ToString();
Node.Text = dc.Com_Name;
Node.NavigateUrl = "javascript:SaveSelData(‘" + Node.Text + "‘,‘" + Node.Value + "‘);";
pNode.ChildNodes.Add(Node);
AddTree(dc.Com_Id.ToString(), Node);
}
}
}

二 :

点击 “水果类”

<div>
<asp:TreeView ID="TreeView1" runat="server" Height="300px" Width="200px" SelectAction="Expand"
ShowCheckBoxes="All" OnSelectedNodeChanged="TreeView1_SelectedNodeChanged" OnLoad="TreeView1_Load">
</asp:TreeView>
</div>

protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BDTree();
}
}
private List<T_CommodityType> list = new List<T_CommodityType>();
private void BDTree()
{
list = bll.GetModelList(" AND Com_IsTrue=0 AND Com_Status=2 ; ");
AddTree("00000000-0000-0000-0000-000000000000", null);
}
public void AddTree(string ParentID, TreeNode pNode)
{
if (list.Where(o => o.Com_ParentId.ToString().Equals(ParentID)).Count() == 0)
return;
List<T_CommodityType> clist =
list.Where(o => o.Com_ParentId.ToString().ToLower().Equals(ParentID.ToLower())).ToList();
foreach (T_CommodityType dc in clist)
{
TreeNode Node = new TreeNode();
if (pNode == null)
{
Node.Value = dc.Com_Id.ToString();
Node.Text = dc.Com_Name;
Node.ShowCheckBox = true;
TreeView1.Nodes.Add(Node);
AddTree(dc.Com_Id.ToString(), Node);
}
else
{
Node.Value = dc.Com_Id.ToString();
Node.Text = dc.Com_Name;
Node.ShowCheckBox = true;
//Node.SelectAction = TreeNodeSelectAction.SelectExpand;
pNode.ChildNodes.Add(Node);
AddTree(dc.Com_Id.ToString(), Node);
}

}
}
protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e)
{
if (TreeView1.SelectedNode.Checked)
{
TreeView1.SelectedNode.Checked = false;
if (TreeView1.SelectedNode.ChildNodes.Count > 0)
{
foreach (TreeNode n in TreeView1.SelectedNode.ChildNodes)
{
n.Checked = true;
}
}
return;
}
TreeView1.SelectedNode.Checked = true;

if (TreeView1.SelectedNode.ChildNodes.Count > 0)
{
foreach (TreeNode n in TreeView1.SelectedNode.ChildNodes)
{
n.Checked = true;
}
}
if (TreeView1.SelectedNode.Parent != null)
{
// TreeView1.SelectedNode.Parent.Checked = true;
}
}

protected void TreeView1_Load(object sender, EventArgs e)
{
if (!object.Equals(null, TreeView1.SelectedNode))
{
TreeView1.SelectedNode.Select();
TreeView1.SelectedNode.Selected = false;
}
}

时间: 2024-07-29 23:58:16

绑定 treeview树的相关文章

ASP.NET用递归法绑定Treeview控件

1.代码如下: private void Form1_Load(object sender, EventArgs e) { treeView1.Nodes.Clear();//清空 树的所有节点 List<T_NavigationModel> Fnods = new T_NavigationBLL().GetModelList("Npid=0");//获取所有根节点 if (Fnods.Count <= 0)//判断要添加的节点个数是否为0,为0则取消 return;

C# TreeView 树节点:递归显示整个系统盘符文件目录及文件

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows.Forms; using System.IO; namespace Demo { /// <summary> /// 有关对于TreeView节点的填充的相关处理类 /// </summary> class TreeViewUtils { #region 有关将整个系统盘

TreeView 树菜单 节点

<1>TreeView树的基本操作 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace TreeVie

DevExpress TreeList使用教程之绑定多级树

DevExpress TreeList使用教程之绑定多级树 概述:TreeList控件可以同时显示树结构和其他数据列,即在一个列上建立父子关系展开或收缩,同时还可以显示其他列的内容.在TreeList中同时引入了 Node和 Columns概念, 第一列为树结构, 其余列为数据列, 任何列都可作为树结构列(即拖动到第一列)显示 TreeList控件可以同时显示树结构和其他数据列,即在一个列上建立父子关系展开或收缩,同时还可以显示其他列的内容. 在TreeList中同时引入了 Node和 Colu

TreeView 树节点的处理

TreeView 树节点的处理 1 using System; 2 using System.Collections.Generic; 3 using System.ComponentModel; 4 using System.Data; 5 using System.Drawing; 6 using System.Linq; 7 using System.Text; 8 using System.Threading.Tasks; 9 using System.Windows.Forms; 10

WPF ComboBox下拉绑定Treeview 功能的实现

因为项目需要,接触到这个功能点,借助网络还有自己的一点摸索,实现了这个功能.相关代码如下: XAML部分的代码: <ComboBox Grid.Row="0" Grid.Column="9" HorizontalAlignment="Left" Name="OrgaComboBox" Margin="6" VerticalAlignment="Top" Width="20

HTTP模拟工具【C#/Winform源码】、Json绑定TreeView控件、使用了MetroModernUI、RestSharp、Dapper.Net、Newtonsoft.Json、SmartThreadPool这几个主要开源框架

HTTP模拟工具 开发语言:C#/Winform开发工具:Visual Studio 2017数据库:   SQLite使用框架:界面-MetroModernUI              Http请求-RestSharp              ORM-Dapper.Net              Json解析-Newtonsoft.Json              多线程-SmartThreadPool本来打算试一下Dapper.Net扩展框架-DapperExtensions,用了有

Qt qml treeview 树控件

qml并没有提供树控件,只能自己写了.model仍然用ListModel对象,弄成层级的就行.delegate必须用loader动态的增加子控件,如此而已. [先看效果] [下载] http://download.csdn.net/detail/surfsky/8406181 [核心代码] 1 import QtQuick 2.1 2 import QtQuick.Controls 1.0 3 4 5 /** 6 树控件 7 作者:surfsky.cnblogs.com 2014-10 8 协议

delphi 递归遍历TreeView树节点

//以下全部调试通过,你在窗体扔一个Treeview就行了 procedure GetRootNodes(ATreeView:TTreeView);//得到所有根节点var vNode:TTreeNode;begin  vNode:=nil;  vNode:=ATreeView.Items.GetFirstNode;  While vNode<>nil do  begin    ShowMessage(vNode.Text);//处理查找到的根节点    vNode:=vNode.getNex