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 ...
随机推荐
- Faster R-CNN论文详解 - CSDN博客
废话不多说,上车吧,少年 paper链接:Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks ...
- JAVA优化技巧分享 让游戏更加的流畅
我的世界怎么样可以玩的更加流畅呢?怎么对游戏进行优化呢?相信很多小伙伴都很想知道吧,今天小编为大家带来的是我的世界游戏优化技巧,喜欢的小伙伴不要错 ... 在很多时候如果电脑配置过低的话,玩游戏并不流 ...
- 有关ros::spin()和ros::spinonce()若干感受
ros::spinonce()一般与loop_rate.sleep()同时出现,用来控制处理回调函数的频率,并且没有消息就收来时,就会程序堵塞,不会占用CPU资源. ros::spin(),用于回调函 ...
- 开发一个根据xml创建代理类的小框架
github地址 https://github.com/1367356/GradleTestUseSubModule/tree/master/CreateMyFrameWork 1:定义一些规则
- Spark Shuffle(ExternalSorter)
1.Shuffle流程 spark的shuffle过程如下图所示,和mapreduce中的类似,但在spark2.0及之后的版本中只存在SortShuffleManager而将原来的HashShuff ...
- JavaScript在页面中的引用方法
现在前端开发越来越流行,框架也越来越多,像ExtJs.JQuery.Bootstrap等.虽然入行这么多年,但是感觉自己在前端方面还是存在基础不牢的地方,特别是CSS和JS.因此最近打算重新阅读这方面 ...
- fedora修改主目录文件名为英文
在gnome-terminal里面能够显示中文的,但是在文本终端里面中文都是不能显示的,是一个小小的正方形.因此可以只把主目录文件名换成英文的,方便文本终端命令输入,而其他的一些地方还是 ...
- ng-深度学习-课程笔记-14: 人脸识别和风格迁移(Week4)
1 什么是人脸识别( what is face recognition ) 在相关文献中经常会提到人脸验证(verification)和人脸识别(recognition). verification就 ...
- 《Java入门第二季》第四章 多态
Java 中的多态1.引用的多态:意思就是父类的句柄既可以持有本类的对象,也可以持有子类的对象. 2.方法的多态:注意点是当父类句柄持有子类对象的时候,无法调用子类特有的方法. 多态中的引用类型转换1 ...
- c++第二十四天
p126~p128: 1.关系运算符作用于算数类型和指针类型. 2.逻辑运算符作用于任意能转换成布尔类型值的类型. 3.以上两种运算的运算对象和运算结果都是右值. 4.逻辑与和逻辑或的运算策略:短路求 ...