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. Faster R-CNN论文详解 - CSDN博客

    废话不多说,上车吧,少年 paper链接:Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks ...

  2. JAVA优化技巧分享 让游戏更加的流畅

    我的世界怎么样可以玩的更加流畅呢?怎么对游戏进行优化呢?相信很多小伙伴都很想知道吧,今天小编为大家带来的是我的世界游戏优化技巧,喜欢的小伙伴不要错 ... 在很多时候如果电脑配置过低的话,玩游戏并不流 ...

  3. 有关ros::spin()和ros::spinonce()若干感受

    ros::spinonce()一般与loop_rate.sleep()同时出现,用来控制处理回调函数的频率,并且没有消息就收来时,就会程序堵塞,不会占用CPU资源. ros::spin(),用于回调函 ...

  4. 开发一个根据xml创建代理类的小框架

    github地址 https://github.com/1367356/GradleTestUseSubModule/tree/master/CreateMyFrameWork 1:定义一些规则

  5. Spark Shuffle(ExternalSorter)

    1.Shuffle流程 spark的shuffle过程如下图所示,和mapreduce中的类似,但在spark2.0及之后的版本中只存在SortShuffleManager而将原来的HashShuff ...

  6. JavaScript在页面中的引用方法

    现在前端开发越来越流行,框架也越来越多,像ExtJs.JQuery.Bootstrap等.虽然入行这么多年,但是感觉自己在前端方面还是存在基础不牢的地方,特别是CSS和JS.因此最近打算重新阅读这方面 ...

  7. fedora修改主目录文件名为英文

           在gnome-terminal里面能够显示中文的,但是在文本终端里面中文都是不能显示的,是一个小小的正方形.因此可以只把主目录文件名换成英文的,方便文本终端命令输入,而其他的一些地方还是 ...

  8. ng-深度学习-课程笔记-14: 人脸识别和风格迁移(Week4)

    1 什么是人脸识别( what is face recognition ) 在相关文献中经常会提到人脸验证(verification)和人脸识别(recognition). verification就 ...

  9. 《Java入门第二季》第四章 多态

    Java 中的多态1.引用的多态:意思就是父类的句柄既可以持有本类的对象,也可以持有子类的对象. 2.方法的多态:注意点是当父类句柄持有子类对象的时候,无法调用子类特有的方法. 多态中的引用类型转换1 ...

  10. c++第二十四天

    p126~p128: 1.关系运算符作用于算数类型和指针类型. 2.逻辑运算符作用于任意能转换成布尔类型值的类型. 3.以上两种运算的运算对象和运算结果都是右值. 4.逻辑与和逻辑或的运算策略:短路求 ...