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. ansible相关

    上图为ansible的基本架构,从上图可以了解到其由以下部分组成: 核心:ansible 核心模块(Core Modules):这些都是ansible自带的模块 扩展模块(Custom Modules ...

  2. Spring boot maven 搭建框架

    Spring Boot:目的:这个框架帮助开发者更容易地创建基于Spring的应用程序和服务,使得pring开发者能够最快速地获得所需要的Spring功能.优点:完全不需要XML配置,让spring应 ...

  3. pandas 取消读取csv时默认第一行为列名

    读取时默认第一行为列名 此时DataFrame的列名为第一行数据: 因为第一行为有效数据,故不可作为列名,要么重新起列名,要么使用默认序列列名: 取消默认第一行为列名 给 pd.read_csv() ...

  4. 大话https演化过程(对称加密、非对称加密、公钥、私钥、数字签名、数字证书)

    大话https演化过程(包括概念:对称加密.非对称加密.公钥.私钥.数字签名.数字证书.https访问全过程)   在网络上发送数据是非常不安全的,非常容易被劫持或是被篡改,所以每次定向发送数据你都可 ...

  5. Day06 DOM4J&schema介绍&xPath

    day06总结 今日内容 XML解析之JAXP( SAX ) DOM4J Schema   三.XML解析器介绍   操作XML文档概述   1 如何操作XML文档 XML文档也是数据的一种,对数据的 ...

  6. Mysql varchar 把默认值设置为null和空的区别

    '\0',这个表示空,需要消耗存储空间的.NULL,则表示连这个\0都没有. NULL,你可以近似理解为变量未赋值(定义了变量,但是未使用,变量不指向具体存储空间,因此,理论上不消耗存储空间),同时, ...

  7. mysql 数据操作 单表查询 练习

    查出所有员工的名字,薪资,格式为 <名字:egon>,<薪资:3000> mysql> select concat('<姓名:',name,'>') as n ...

  8. python 定义类 学习2

    构造函数的变量 也叫做 实例变量 class role(): # 传参数 def __init__(self,name,role,weapon,life_value=100,moneny=15000) ...

  9. C#基础整理(二)

    1.变量类型int.double.string.char.bool.decimal变量使用规则:先声明,再赋值,最后使用 2.命名规范:Camel:第一个单词首字母小写,其他单词首字母大写,其余字母小 ...

  10. Linux java Tomcat 项目中 new Date 获取时间 8小时 时差

    转载自: https://blog.csdn.net/liqinghuiyx/article/details/53333284 起因:在本地开发的WEB项目部署到Linux 下后,存入数据库的时间少了 ...