epoint:TreeView
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的更多相关文章
- MVC树控件,mvc中应用treeview,实现复选框树的多层级表单控件
类似于多层级的角色与权限控制功能,用MVC实现MVC树控件,mvc中应用treeview,实现复选框树的多层级表单控件.最近我们的项目中需要用到树型菜单,以前使用WebForm时,树型菜单有微软提供的 ...
- WPF 自定义列表筛选 自定义TreeView模板 自定义ListBox模板
有很多项目,都有数据筛选的操作.下面提供一个案例,给大家做参考. 左侧是数据源,搜索框加TreeView控件,右侧是ListBox控件.在左侧数据列点击添加数据,然后点击确定,得到所筛选的数据. 下面 ...
- WinForm 进程、线程、TreeView递归加载、发送邮件--2016年12月13日
进程:一个程序就是一个进程,但是也有一个程序需要多个进程来支持的情况 进程要使用的类是:Process它在命名空间:System.Diagnostics; 静态方法Start(); Process.S ...
- wpf TreeView
<Window x:Class="WpfTutorialSamples.TreeView_control.TreeViewDataBindingSample" ...
- 【转载】关于treeview的多层显示的科学用法!
http://blogs.msdn.com/b/mikehillberg/archive/2009/10/30/treeview-and-hierarchicaldatatemplate-step-b ...
- winform进程、线程、TreeView递归加载
进程: 一般来说,一个程序就是一个进程,不过也有一个程序需要多个进程支持的情况. 进程所使用的类:Process 所需命名空间:System.Diagnostics; 可以通过进行来开启计算机上现有的 ...
- TreeView 使用方法:(在View.Details模式下)
1.建立TreeView的標題 2.建立TreeView的Item 3.在TreeView的Item中的建立SubItem 如果將各部 ...
- ASP.NET通过递归添加树(Treeview)
先来看看效果,基本上就是这样的. 所谓树,无非就是2点,第一个:根节点,第二:叶子节点,其中叶子节点中还可能有叶子节点,但是根节点始终只有一个. 下面贴上 各部分的代码 1.PAGE_LOAD载入事件 ...
- TreeView控件使用
treeView1.SelectedNode = treeView1.Nodes[0]; //选中当前treeview控件的根节点为当前节点添加子节点: TreeNode tmp; tmp = n ...
随机推荐
- 运行mlflow命令报错 The 'nose' distribution was not found and is required by nose-exclude
安装好mlflow之后命令行运行: mlflow 得到报错: 解决: sudo pip3 install nose
- (2.9)Mysql之SQL基础——索引的查看与删除
(2.9)Mysql之SQL基础——索引的查看与删除 关键词:mysql索引查看,mysql索引删除 1.索引查询(以下包括主键,唯一,普通,复合,全文,但不包括外键) (1)按库查询 select ...
- 最长DNA重复序列长度,并输出该序列。 JAVA
1: 最长DNA重复序列长度,并输出该序列. 例如 ATCGTAGATCG,它的最大长度为4,序列为 ATCG. package com.li.huawei; import java.util.S ...
- 什么是API测试
什么是API API是Application Programming Interface的简写. 实现了两个或多个独立系统或模块间的通信和数据交换能力. 什么是API测试 图片.png API测试是不 ...
- C# 多线程编程第一步——理解多线程
一.进程.线程及多线程的概念 什么是多线程呢?不理解. 那什么是线程呢?说到线程就不得不说说进程.我在网上搜索也搜索了一些资料,大部分所说的进程其实是很抽象的东西.通俗的来讲,进程就是一个应用程序开始 ...
- python按行读取文件,如何去掉换行符"\n"
for line in file.readlines(): line=line.strip('\n')
- linux内核分析第八周-理解进程调度时机跟踪分析进程调度与进程切换的过程
实验原理: 一.调度时机 不同类型的进程有不同的调度需求 第一种分类: I/O-bound 频繁的进行I/O 通常会花费很多时间等待I/O操 ...
- 20145325张梓靖 《Java程序设计》第2周学习总结
20145325张梓靖 <Java程序设计>第2周学习总结 教材学习内容总结 整数 short 2字节,int 4字节,long 8字节 字节 byte 1字节 浮点数 float 4字节 ...
- 从0开始学习 GITHUB 系列之「加入 GITHUB」【转】
本文转载自:http://stormzhang.com/github/2016/05/26/learn-github-from-zero2/ 版权声明:本文为 stormzhang 原创文章,可以随意 ...
- 试着用React写项目-利用styled-components解决样式问题
转载请注明出处:王亟亟的大牛之路 啰嗦之前先安利,会渐渐丰富前端的知识点 https://github.com/ddwhan0123/Useful-Open-Source-Android 昨天用web ...