Dev ComboxTree的实现
一个项目中刚好用到,自己做下笔记备份 顺便和大家共享下
需要用到ASPxDropDownEdit ASPxTreeView 这两个控件
ASPxDropDownEdit对应的dll为:DevExpress.Web.ASPxEditors.v12.1.dll
web.config中的配置为:<add tagPrefix="dx" namespace="DevExpress.Web.ASPxEditors" assembly="DevExpress.Web.ASPxEditors.v12.1, Version=12.1.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
ASPxTreeView对应的dll为:DevExpress.Web.v12.1.dll
web.config中的配置为:<add tagPrefix="dx" namespace="DevExpress.Web.ASPxTreeView" assembly="DevExpress.Web.v12.1, Version=12.1.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
先上效果图:
<dx:ASPxDropDownEdit ID="ddNodes" runat="server" ClientInstanceName="ddNodes" AllowUserInput="false" Width="200px">
<DropDownWindowTemplate>
<dx:ASPxTreeView ID="tvNodes" runat="server" ClientInstanceName="tvNodes"
AllowSelectNode="true" ShowExpandButtons="true">
<ClientSideEvents NodeClick="OnNodesTreeViewNodeClick" /><!--对控件进行赋值的js方法-->
</dx:ASPxTreeView>
</DropDownWindowTemplate>
</dx:ASPxDropDownEdit>
对控件进行js赋值的方法
function OnNodesTreeViewNodeClick(s, e) {
if (e.node.nodes.length > 0)
return;
ddNodes.SetKeyValue(e.node.name);
ddNodes.SetText(e.node.GetText());
ddNodes.HideDropDown();
}
后台代码实现
ASPxTreeView tvNodes = ddNodes.FindControl("tvNodes") as ASPxTreeView;
TreeViewCreateNodes(数据列表,tvNodes.Nodes,"0");//创建TreeViewNodes的方法
tvNodes.SelectedNode = TreeViewSelectedNode(tvNodes,'5'); //5为选中节点的ID
ddNodes.Text = tvNodes.SelectedNode.Text;
ddNodes.KeyValue = tvNodes.SelectedNode.Name;
/// <summary>
/// 创建TreeViewNodes节点
/// </summary>
/// <param name="table"></param>
/// <param name="nodesCollection"></param>
/// <param name="parentID"></param>
public static void TreeViewCreateNodes(IList<T> table, TreeViewNodeCollection nodesCollection, string parentID)
{
for (int i = 0; i < table.Count; i++)
{
if (table[i].ParentID == parentID)
{
TreeViewNode node = new TreeViewNode(table[i].Name, table[i].ID);
nodesCollection.Add(node);
TreeViewCreateNodes(table, node.Nodes, node.Name);
}
}
}
/// <summary>
/// 获取TreeViewNodes选中节点
/// </summary>
/// <param name="tvn"></param>
/// <param name="selectID"></param>
/// <returns></returns>
public void TreeViewSelectedNode(ASPxTreeView tvNodes, string selectID)
{
foreach (TreeViewNode tvn in tvNodes.Nodes)
{
tvNodes.SelectedNode = TreeViewSelectedNode(tvn, selectID);
if (tvNodes.SelectedNode != null)
break;
}
}
/// <summary>
/// 获取TreeViewNodes选中节点
/// </summary>
/// <param name="tvn"></param>
/// <param name="selectID"></param>
/// <returns></returns>
private TreeViewNode TreeViewSelectedNode(TreeViewNode tvn, string selectID)
{
if (tvn.Name == selectID)
{
return tvn;
}
else if (tvn.Nodes.Count > 0)
{
foreach (TreeViewNode tvnChild in tvn.Nodes)
{
TreeViewNode tvns = TreeViewSelectedNode(tvnChild, selectID);
if (tvns != null)
return tvns;
}
}
return null;
}
转载引用 请保留 版权http://www.cnblogs.com/xushaonian/p/3230181.html BY www.gkxsn.com
鞋子 http://xiaobenxie.taobao.com/
Dev ComboxTree的实现的更多相关文章
- 特殊文件: /dev/null和/dev/tty
转自:http://www.cnblogs.com/stephen-liu74/archive/2011/11/10/2240461.html Linux系统提供了两个对Shell编程非常有用的特殊文 ...
- Dev控件GridView单元格绑定控件
Dev控件GridView单元格绑定控件 //文本按钮 RepositoryItemButtonEdit btnFields = new RepositoryItemButtonEdit();//创建 ...
- EasyuI comboxTree 使用笔记
继承至 $.fn.combo.defaults 和$.fn.tree.defaults.覆盖默认值$.fn.combotree.defaults. combotree结合选择控制和下拉树,类似于com ...
- oracle对/dev/shm的使用
查看共享内存打开的文件数 [root@db2 ~]# lsof -n | grep /dev/shm | wc -l 34693 共享内存中总共文件数 [root@db2 ~]# ls -l /dev ...
- 浅析/dev/shm
一,/dev/shm 概念 /dev/shm 是一个tmpfs文件系统,临时文件系统,是基于内存的文件系统,也就是说/dev/shm中的文件是直接写入内存的,而不占用硬盘空间. 在Centos和Red ...
- Dev Cpp 输出中文字符问题
最近 c++ 上机作业,vc++6.0 挂了没法用,只好用 Dev Cpp 先顶替一下,然而在遇到输出中文字符的时候出现了乱码的情况,但这种情况又非常诡异.于是简单了解了一下写成此博客. [写在前面] ...
- dev c++ Boost库的安装
dev c++ 的boost库的安装步骤 然后点击“check for updates”按钮 最后点击“Download selected”按钮,下载完成后安装.... 给dev添加boost库文件, ...
- Dev Winform 简洁界面模板制作
今天看到Dev的安装程序,发现界面很漂亮如下图: 于是想到做个类似的简洁明了的界面出来,平常开发小程序什么的都方便很多. 1.首先是自己添加了一个XtraForm,我们发现它有点丑(我为了性能,习惯把 ...
- Dev TreeList 总结
1.表格的要求:如果要求有父子节点关系,则必须有ID和ParentID字段,并且父节点ParentID字段必须指向ID字段. 2.Access表格在穿入DATATABLE的时候,要想表现出父子节点关系 ...
随机推荐
- 谈谈分布式事务之二:基于DTC的分布式事务管理模型[下篇]
[续上篇] 当基于LTM或者KTM的事务提升到基于DTC的分布式事务后,DTC成为了本机所有事务型资源管理器的管理者:此外,当一个事务型操作超出了本机的范 围,出现了跨机器的调用后,本机的DTC需要于 ...
- (6)s3c2440用I2C接口访问EEPROM
在前面阅读理解了I2C的官方协议文档后,就拿s3c2440和EEPROM来验证一下. 本来是想用s3c2440的SDA和SCL管脚复用为GPIO来模拟的,但在没有示波器的情况下搞了一周,怎么都出不来, ...
- Codeforces Round #343 (Div. 2) A. Far Relative’s Birthday Cake
水题 #include<iostream> #include<string> #include<algorithm> #include<cstdlib> ...
- ehcache在windows下使用RMI同步时出现的问题
问题 最近的项目由于OP分配的机器没有配Redis或Mem,为了解决tomcat的集群问题,项目使用了Ehcache作为缓存.Ehcache使用RMI进行同步,但在本地测试时出现了缓存未同步的问题.最 ...
- linux内核奇遇记之md源代码解读之四
linux内核奇遇记之md源代码解读之四 转载请注明出处:http://blog.csdn.net/liumangxiong 运行阵列意味着阵列经历从无到有,建立了作为一个raid应有的属性(如同步重 ...
- [struts2]开启struts2开发模式
<constant name="struts.devMode" value="true" />
- Jquery zTree的使用
<%@ page language="java" pageEncoding="utf-8"%><%@taglib prefix="s ...
- Moq4在.NET3.5和.NET4版本之间的差异
博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:Moq4在.NET3.5和.NET4版本之间的差异.
- 免费安卓IOS测试API接口,后续会陆续增加接口
各位博友好!开发的安卓或者ios的朋友们,经常会遇到想测试但是没有公开的api接口进行进行测试.但自己又不会开发服务端或者没有服务器,这里我免费提供了一整套API接口.欢迎大家调用,目标是方便大家. ...
- -bash: ls: command not found
在iMac下ls既然command not found,查找了下 原因:在设置环境变量时,编辑profile文件没有写正确,导致在命令行下 ls等命令不能够识别.解决方案: 直接在控制台下 expo ...