Epoint.Web.UI.WebControls2X.EpointTreeNode

思路:就是使用递归

RootNodeText 根节点名称
RootNodeUrl 根节点路径
ShowRootNode 是否显示根节点

OnTreeNodePopulate 动态添加子节点事件 如果节点的表明node.PopulateOnDemand =

true;那么这是一个动态添加的节点

一层节点

<epoint:TreeView ID="TreeView1" Target="main1" SearchAtClient="false" runat="server" ShowRootNode="true" RootNodeText="所有商品" RootNodeUrl="Record_List.aspx">
</epoint:TreeView> protected void Page_Load(object sender, EventArgs e)
{ this.CurrentLeftPosition = "选择商品";
this.CurrentRightPosition = "商品列表";
this.CurrentPosition = "商品管理";
if (!Page.IsPostBack)
BindTree();
}
protected void BindTree()
{ DataView dvCommunityInfo = new DB_Commodity().Select();
Epoint.Web.UI.WebControls2X.EpointTreeNode node;
for (int i = ; i < dvCommunityInfo.Count; i++)
{
node = new EpointTreeNode();
node.Text = dvCommunityInfo[i]["Name"].ToString();
node.Value = dvCommunityInfo[i]["RowGuid"].ToString();
node.NavigateUrl = "Record_List.aspx?CommidityGuid=" + node.Value;
TreeView1.Nodes.Add(node);
}
}    

两层节点

public partial class XMTree : BaseContentPage_UsingMasterWithTree
{
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
this.CurrentLeftPosition = "项目信息";
this.CurrentRightPosition = "项目信息";
this.CurrentPosition = "项目信息";
BindXMTreeData();
}
}
public void BindXMTreeData()
{
TreeView1.RootNodeText = "各类型项目"; //获取根节点文本
AddTopNodes();
} private void AddTopNodes()
{
EpointTreeNode node;
string sqlGCValue = string.Format(@"select ItemValue,ItemText from VIEW_CodeMain_CodeItems where CodeName='{0}'", "项目库工程类型");
DataView dv = Epoint.MisBizLogic2.DB.ExecuteDataView(sqlGCValue);
DataView dvTemp;
for (int i = ; i < dv.Count; i++)
{
node = new EpointTreeNode();
node.Text = Convert.ToString(dv[i]["ItemText"]);
node.Value = Convert.ToString(dv[i]["ItemValue"]);
string sqlXMtype = string.Format(@"select ItemValue,ItemText from VIEW_CodeMain_CodeItems where CodeName='{0}' and ItemValue like '" + Convert.ToString(dv[i]["ItemValue"]) + "%'", "项目库项目类型");
dvTemp = Epoint.MisBizLogic2.DB.ExecuteDataView(sqlXMtype);
TreeView1.Nodes.Add(node);
if (dvTemp.Count > )
expandChildNodes(node, dvTemp); //实时加载子节点
} } /// <summary>
/// 递归绑定子节点
/// </summary>
/// <param name="parentNode"></param>
/// <param name="dv"></param>
private void expandChildNodes(EpointTreeNode parentNode, DataView dv)
{
EpointTreeNode node;
string fullItemText = "";
string[] TextArr;
for (int i = ; i < dv.Count; i++)
{
node = new EpointTreeNode();
fullItemText = Convert.ToString(dv[i]["ItemText"]);
if (fullItemText.Contains("—"))
{
TextArr = fullItemText.Split('—');
node.Text = TextArr[];
}
else
{
node.Text = Convert.ToString(dv[i]["ItemText"]);
}
node.Value = Convert.ToString(dv[i]["ItemValue"]);
node.NavigateUrl = "NodeWeightConfigTree.aspx?projecttype=" + node.Value + "&firstnodename=" + node.Text;
parentNode.ChildNodes.Add(node); //添加子节点
}
}
}

epoint:TreeView的更多相关文章

  1. MVC树控件,mvc中应用treeview,实现复选框树的多层级表单控件

    类似于多层级的角色与权限控制功能,用MVC实现MVC树控件,mvc中应用treeview,实现复选框树的多层级表单控件.最近我们的项目中需要用到树型菜单,以前使用WebForm时,树型菜单有微软提供的 ...

  2. WPF 自定义列表筛选 自定义TreeView模板 自定义ListBox模板

    有很多项目,都有数据筛选的操作.下面提供一个案例,给大家做参考. 左侧是数据源,搜索框加TreeView控件,右侧是ListBox控件.在左侧数据列点击添加数据,然后点击确定,得到所筛选的数据. 下面 ...

  3. WinForm 进程、线程、TreeView递归加载、发送邮件--2016年12月13日

    进程:一个程序就是一个进程,但是也有一个程序需要多个进程来支持的情况 进程要使用的类是:Process它在命名空间:System.Diagnostics; 静态方法Start(); Process.S ...

  4. wpf TreeView

    <Window x:Class="WpfTutorialSamples.TreeView_control.TreeViewDataBindingSample"        ...

  5. 【转载】关于treeview的多层显示的科学用法!

    http://blogs.msdn.com/b/mikehillberg/archive/2009/10/30/treeview-and-hierarchicaldatatemplate-step-b ...

  6. winform进程、线程、TreeView递归加载

    进程: 一般来说,一个程序就是一个进程,不过也有一个程序需要多个进程支持的情况. 进程所使用的类:Process 所需命名空间:System.Diagnostics; 可以通过进行来开启计算机上现有的 ...

  7. TreeView 使用方法:(在View.Details模式下)

    1.建立TreeView的標題         2.建立TreeView的Item         3.在TreeView的Item中的建立SubItem                  如果將各部 ...

  8. ASP.NET通过递归添加树(Treeview)

    先来看看效果,基本上就是这样的. 所谓树,无非就是2点,第一个:根节点,第二:叶子节点,其中叶子节点中还可能有叶子节点,但是根节点始终只有一个. 下面贴上 各部分的代码 1.PAGE_LOAD载入事件 ...

  9. TreeView控件使用

    treeView1.SelectedNode = treeView1.Nodes[0];  //选中当前treeview控件的根节点为当前节点添加子节点:  TreeNode tmp; tmp = n ...

随机推荐

  1. 【Loadrunner】使用LR录制HTTPS协议的三种方法

    使用LR录制HTTPS协议的三种方法 一.最简单的方法:浏览器配置打开浏览器,安装证书,配置完成后直接用http协议录制即可(配置完成的标识就是打开网页,不显示安全提示) 二.LR配置修改操作步骤如下 ...

  2. Python 读取写入配置文件 —— ConfigParser

    Python 读取写入配置文件 —— ConfigParser Python 读取写入配置文件很方便,可使用内置的 configparser 模块:可查看源码,如博主本机地址: “C:/python2 ...

  3. Linux下Rsync+Inotify-tools实现数据实时同步

    Linux下Rsync+Inotify-tools实现数据实时同步 注意:下面的三个案例都是rsync 每次都是全量的同步(这就坑爹了),而且 file列表是循环形式触发rsync ,等于有10个文件 ...

  4. centos 阶段复习 2015-4-6 dd命令 hosts.allow和hosts.deny 啊铭的myssh脚本 清空history命令历史 /dev/zero 零发生器 /dev/null 黑洞 /dev/random 生成随机数 第十一节课

    centos 阶段复习 2015-4-6  dd命令 hosts.allow和hosts.deny 啊铭的myssh脚本 清空history命令历史  /dev/zero 零发生器  /dev/nul ...

  5. .NET、NET Framewor以及.NET Core的关系(二)

    什么是CLR,.NET虚拟机? 实际上,.NET不仅提供了自动内存管理的支持,他还提供了一些列的如类型安全.应用程序域.异常机制等支持,这些 都被统称为CLR公共语言运行库. CLR是.NET类型系统 ...

  6. C#基础整理(一)

    1.什么是.net? .net有.net平台和.Net Framework框架. .net平台是包含.net framework框架. framework框架提供稳定的运行环境来保证基于.Net平台开 ...

  7. python 实现的比特币代码 及 加密货币学习线路图及书籍资料

    http://www.pycoind.org/ https://github.com/samrushing/caesure https://bitcointalk.org/index.php?topi ...

  8. jQuery-添加、移出事件

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...

  9. docker——核心实现技术

    作为一种容器虚拟化技术,Docker深度应用了操作系统的多项底层支持技术. 早期版本的Docker是基于已经成熟的Linux Container(LXC)技术实现的.自从0.9版本起,Docker逐渐 ...

  10. Linux系统——DNS

    DNS系统的作用1. DNS服务器Internet中,大部分网站.邮件服务等服务器都使用了域名形式的地址,这种地址形式要比使用IP地址形式更加直观,更加容易被用户记住.FQDN格式(完整域名格式):在 ...