TreeView递归绑定无限分类数据
TreeView递归绑定无限分类数据
实现一个动态绑定,无限级分类数据时,需要将数据绑定到TreeView控件,分类表的结构是这样的:
字段 |
类型 |
Id |
int |
ParentId |
int |
Name |
Nvarchar(64) |
实现数据绑定:
private void ControlsDataBind()
{
tvCategory.Nodes.Clear();
List<Models.Category> types = CommonNews.Helper.OperateContext.Current.LoadNewsTypes();
IEnumerable<Models.Category> rootNodes = types.Where(t => t.ParentId == );
TreeNode node = null;
foreach (Models.Category item in rootNodes)
{
node = new TreeNode(item.CategoryName, item.CategoryId.ToString());
if (tvCategory.Nodes.Contains(node))
{
continue;
}
IEnumerable<Models.Category> ts = types.Where(t => t.ParentId == item.CategoryId);
AddNodesToTree(ts, node, );
}
} private void AddNodesToTree(IEnumerable<Models.Category> category, TreeNode node, int level)
{
TreeNode childNode = null;
foreach (Models.Category c in category)
{
childNode = new TreeNode(c.CategoryName, c.CategoryId.ToString());
if (tvCategory.Nodes.Contains(childNode))
{
continue;
}
node.ChildNodes.Add(childNode);
AddNodesToTree(category.Where(t => t.CategoryId == c.ParentId), childNode, level + );
}
tvCategory.Nodes.Add(node);
}
TreeViewBind
TreeView递归绑定无限分类数据的更多相关文章
- TreeView递归绑定数据的两种方法
#region 绑定TreeView /// <summary> /// 绑定TreeView(利用TreeNode) /// </summary> /// <param ...
- php不用递归完成无限分类,从表设计入手完整演示过程
无限分类是什么就不废话了,可以用递归实现,但是递归从数据库取东西用递归效率偏低,如果从表设计入手,就很容易做到网站导航的实现,下面是某论坛导航,如下图 网上无限分类大多不全面,今天我会从设计表开始, ...
- php递归获取无限分类菜单
从数据库获取所有菜单信息,需要根据id,pid字段获取主菜单及其子菜单,以及子菜单下的子菜单,可以通过函数递归来实现. <?php class Menu { public $menu = arr ...
- PHP实现无限分类
PHP实现无限分类 无限分类 递归 无限级分类是一种设计技巧,在开发中经常使用,例如:网站目录.部门结构.文章分类.笔者觉得它在对于设计表的层级结构上面发挥很大的作用,比如大家在一些平台上面,填写邀请 ...
- TreeView树形控件递归绑定数据库里的数据
TreeView树形控件递归绑定数据库里的数据. 第一种:性能不好 第一步:数据库中查出来的表,字段名分别为UNAME(显示名称),DID(关联数据),UTYPE(类型) 第二步:前台代码 <% ...
- 潜移默化学会WPF(难点控件treeview)--改造TreeView(CheckBox多选择版本),递归绑定数据
原文:潜移默化学会WPF(难点控件treeview)--改造TreeView(CheckBox多选择版本),递归绑定数据 目前自己对treeview的感慨很多 今天先讲 面对这种 表结构的数据 的其中 ...
- [工作札记]02: .Net Winform控件TreeView最简递归绑定方法
前言:Treeview控件是我们在WinForm.WebForm开发中经常使用的控件,需要从数据库动态加载数据,然后递归绑定每一个节点:同样,递归的思路在其他程序中也经常运用,包括.Net MVC等. ...
- 后台树状菜单,js实现递归无限分类
//新闻类别管理 public function new_classify() { $arr = M('news_classify')->where("fid = 0")-& ...
- php 无限分类 树形数据 格式化
测试demo ------------------------------------------------------------------------------------ <?php ...
随机推荐
- 【C语言】汉诺塔问题
之前遇见这个问题,非常费劲地理解了,并写出代码,然后过段时间,再遇见这个问题,又卡住了,如此反反复复两三次,才发现自己对递归的理解依然很肤浅.今天无聊,重温<算法:c语言实现>一书,又遇见 ...
- textView字体颜色根据不同状态显示不同颜色
XML file saved at res/color/button_text.xml: <?xml version="1.0" encoding="utf-8&q ...
- 【转】ORATOP工具使用说明
文章转自:http://lintzyuan.blogspot.jp/2014/07/oratop.html ORATOP 前言:隨著PC Server的規格及速度愈來愈快,大多數的公司摒棄大型主機 ...
- SQL SERVER 使用select和union插入多条数据
insert into A(A) select '2' union select '3' union select '100' go select * from A
- linux主机间复制文件
命令基本格式: 1.从 本地 复制到 远程 * 复制文件: * 命令格式: scp local_file remote_username@re ...
- gulp-imagemin图片压缩----gulp系列(三)
本节实现图片压缩,在实现压缩前,先配置images任务,设置源目录和输出目录. 在系列(二)代码的基础上,再进行扩展. 1.找到gulp->config.js,对images进行源目录(src- ...
- 『创意欣赏』20款精致的 iOS7 APP 图标设计
这篇文章给大家分享20款精致的 iOS7 移动应用程序图标,遵循图形设计的现代潮流,所有图标都非常了不起,给人惊喜.通过学习这些移动应用程序图标,设计人员可以提高他们的创作,使移动用户界面看起来更有趣 ...
- [python实用代码片段]python获取当前时间的前一天,前一周,前一个月
python获取当前时间的前一天,前一周,前一个月. 实用python的datetime.timedelta方法,避免了有的月份是30和31等不同的情况. 获取前一个月的时间,方法实现:首先datet ...
- 快速清除文件夹svn版本控制信息
将下面内容另存为clear.bat文件,在有版本控制的目录执行即可 @echo On @Rem 清除SVN版本控制信息 @for /r . %%a in (.) do @if exist " ...
- 数据库收缩:NOTRUNCATE与TRUNCATEONLY
在进行数据库收缩时,我们有2个可用选项:NOTRUNCATE,TRUNCATEONLY.这篇文章我们会详细讨论下这2个选项的具体区别. NOTRUNCATE 当你对数据库收缩命令提供NOTRUNCAT ...