EXT.NET 使用总结(2) ---TreePanel(带右键菜单,节点自定义属性)
TreePanel(带右键菜单,节点自定义属性)
其实这个树控件也挺好用的。http://www.ztree.me/v3/main.php#_zTreeInfo
html
<ext:Panel ID="ContentPanel" runat="server" Width="960" MinHeight="560" Height="560" Border="false" Closable="false" Layout="BorderLayout">
<Items>
<ext:Panel ID="PanelWest" runat="server" Region="West" Title="已配置表" Width="200" Collapsible="true" Split="true" MinWidth="175" MaxWidth="400" Layout="CardLayout" >
<Items>
<ext:TreePanel ID="IndexTableTree" RootVisible="false" runat="server" AutoScroll="true" Border="true">
<Listeners>
<ItemClick Fn="LinkToDefineColumn"></ItemClick>
<ItemContextMenu Fn="ShowMenu" StopEvent="true" />
</Listeners>
<Model>
<ext:Model ID="Model1" runat="server">
<Fields>
<ext:ModelField Name="CODE" Type="String" />
<ext:ModelField Name="BASETYPE" Type="String" />
<ext:ModelField Name="SAVETYPE" Type="String" />
<ext:ModelField Name="parenttablecode" Type="String" />
</Fields>
</ext:Model>
</Model>
<SelectionModel>
<ext:RowSelectionModel ID="RowSelectionModel1" runat="server" Mode="Single" />
</SelectionModel>
</ext:TreePanel>
</Items>
<Listeners>
<Collapse Fn="colsett"></Collapse>
<Expand Fn="colsett"></Expand>
</Listeners>
</ext:Panel>
<ext:Panel ID="PanelCenter" runat="server" Region="Center" Flex="4" Layout="CardLayout"> </ext:Panel>
</Items>
</ext:Panel>
<ext:Menu ID="TreeContextMenu" runat="server">
<Items>
<ext:MenuItem ID="MenuItemAdd" runat="server" Text="添加从表" Handler="AddChildTable();" IconCls="diy_add">
</ext:MenuItem>
<ext:MenuItem ID="MenuItemAddParent" runat="server" Text="添加主表" Handler="AddParentTable();" IconCls="diy_add">
</ext:MenuItem>
<ext:MenuSeparator runat="server" ID="MenuSeparator1"/>
<ext:MenuItem ID="MenuItemEdit" runat="server" Text="编辑表属性" Handler="EDITTable();" IconCls="diy_edit">
</ext:MenuItem>
</Items>
</ext:Menu>
script
<script type="text/javascript">
var ShowMenu = function (view, node, item, index, e) {
SelectNode=node;
var menu = <%=TreeContextMenu.ClientID %>;
var id=node.get("id");
var parenttablecode=node.get("parenttablecode");
idflag=id;
if (id=="RootPublic"||id=="RootPrivate") {
return false;
}
var scode=node.get("S_CODE");
S_CODE=scode;
if (scode!="") {
<%=MenuItemAdd.ClientID %>.hide();
<%=MenuItemAddParent.ClientID %>.hide();
if ((parenttablecode == ""||parenttablecode == null) && (scode == "0" || scode == "1")) {
<%=MenuItemAdd.ClientID %>.show();
}
}else {
<%=MenuItemAdd.ClientID %>.hide();
<%=MenuItemAddParent.ClientID %>.show();
}
<%=MenuSeparator1.ClientID %>.show();
<%=MenuItemEdit.ClientID %>.show();
menu.showAt([e.getXY()[0], e.getXY()[1] + 10]);
e.stopEvent();
}
</script>
后台绑定数据源:
private void BuildTree()
{
Ext.Net.Node root = new Ext.Net.Node();
root.Text = "Root";
IndexTableTree.Root.Add(root);
List<EXTTreeNode> listALL = GetData();
List<EXTTreeNode> list = GetData().FindAll(p=>p.pId=="");
if (list!= null &&list.Count>)
{
foreach (var item in list)
{
Ext.Net.Node node = new Ext.Net.Node();
node.Text = item.name;
node.NodeID = item.id;
if (!string.IsNullOrWhiteSpace(noid))
{
string flag = "";
ifMyChild(item.id, listALL, noid, ref flag);
if (flag=="")
{
node.Expanded = true;
}
}
//添加自定义属性
node.CustomAttributes.Add(new ConfigItem("S_CODE", item.CODE, ParameterMode.Value));
node.CustomAttributes.Add(new ConfigItem("BASETYPE", item.BASETYPE, ParameterMode.Value));
node.CustomAttributes.Add(new ConfigItem("SAVETYPE", item.SAVETYPE, ParameterMode.Value));
node.CustomAttributes.Add(new ConfigItem("parenttablecode", item.parenttablecode, ParameterMode.Value));
node.Leaf = true;
//加载子节点
GetSubNode(node, listALL);
if (node.Children.Count > )
node.Leaf = false;
root.Children.Add(node);
}
}
}
EXT.NET 使用总结(2) ---TreePanel(带右键菜单,节点自定义属性)的更多相关文章
- gridcontrol的列头右键菜单问题
Dev控件GridControl设置了一个右键菜单 this.gridControl1.ContextMenu = contextMenu2; 而GridControl在运行排序的时候,即 gridv ...
- Win7如何自定义桌面右键菜单
1 在注册表的HKEY_CLASSES_ROOT\DesktopBackground\Shell\位置,我们新建一个计算器,他的下面有一个项目command,然后这个command去打开计算器(通过分 ...
- 添加系统右键菜单项 管理员取得所有权(W)(带盾牌)
@color 0A @title 添加系统右键菜单项 管理员取得所有权(^&W)(带盾牌) by wjshan0808 @echo off echo * >nul reg add HKC ...
- 添加右键菜单命令 在此处打开命令窗口(E)(带图标)
@color 0A @title 添加右键菜单命令 在此处打开命令窗口(^&E)(带图标) by wjshan0808 @echo off reg add HKCR\Directory\Bac ...
- 自定义右键菜单,禁用浏览器自带的右键菜单[右键菜单实现--Demo]
许多从事Web开发的会发现有些事,我们需要禁用浏览器本事自带的右键菜单,而实现自定义的右键菜单下面我们也来实现一个自定义的右键菜单 首先来创建JSP页面 <%@ page language=&q ...
- 给Notepad++ 加右键菜单带图标
原文:给Notepad++ 加右键菜单带图标 从网上下载下来的Notepad++ http://download.tuxfamily.org/notepadplus/6.3.3/npp.6.3.3. ...
- 给Notepad++ 6.7 加右键菜单带图标
使用的是Notepad++ 6.7,下载 NppShell64.dll 和 NppShell.dll方法:将BAT文件和下载的NppShell64.dll 和 NppShell.dll放置Notepa ...
- 给Notepad++ 加带图标右键菜单
给Notepad++ 加带图标右键菜单 方式一: 拷贝以下代码建立一个reg文件,替换相关路径,保存,双击运行加入注册表 Windows Registry Editor Version 5.00 [H ...
- ASP.NET Boilerplate 学习 AspNet Core2 浏览器缓存使用 c#基础,单线程,跨线程访问和线程带参数 wpf 禁用启用webbroswer右键菜单 EF Core 2.0使用MsSql/MySql实现DB First和Code First ASP.NET Core部署到Windows IIS QRCode.js:使用 JavaScript 生成
ASP.NET Boilerplate 学习 1.在http://www.aspnetboilerplate.com/Templates 网站下载ABP模版 2.解压后打开解决方案,解决方案目录: ...
随机推荐
- 浅谈Android样式开发之布局优化
引言 今天我们来谈一下Android中布局优化常用的一些手段.官方给出了3种优化方案,分别是</include>.</viewstub>.</merge>标签,下面 ...
- Yii2 基于RESTful架构的 advanced版API接口开发 配置、实现、测试 (转)
环境配置: 开启服务器伪静态 本处以apache为例,查看apache的conf目录下httpd.conf,找到下面的代码 LoadModule rewrite_module modules/mod_ ...
- springmvc 文件上传实现(不是服务器的)
1.spring使用了apache-commons下的上传组件,因此,我们需要引用2个jar包 1)apache-commons-fileupload.jar 2 ) apache-commons-i ...
- 第五章 --- 关于Javascript 设计模式 之 发布-订阅模式
先来个最简单的 发布订阅模式 document.body.addEventListener('click',function(){ alert(123); }); document.body.clic ...
- Why did I have a recovery trip
For more than a decade, I felt most at ease living out of a suitcase, never quite sure where I might ...
- Java多线程--线程安全问题的相关研究
在刚刚学线程的时候我们经常会碰到这么一个问题:模拟火车站售票窗口售票.代码如下: package cn.blogs.com.isole; /* 模拟火车站售票窗口售票,假设有50张余票 */ publ ...
- 补发:用Meal Prep+模块化饮食来减肥之实操
自从上次读到仰望尾迹云 老师的模块化饮食的帖子,再了解了一些Meal Prep的内容,结合着做Meal Prep健康餐至今已经快一个半月了.整体感觉还可以,所以在这里讲一下自己的心得体会. 分为三个部 ...
- 硬盘安装linux的两条命令
kernel (hd0,0)/vmlinuz boot=casper iso-scan/filename=/ubuntu-10.04.1-desktop-i386.iso ro quiet splas ...
- java基础 布局管理器
概念: 组建在容器(比如JFrame)中的位置和 大小 是由布局管理器来决定的.所有的容器都会使用一个布局管理器,通过它来自动进行组建的布局管理. 种类: java共提供了物种布局管理器:流式布局管理 ...
- signalr 配置错误跟踪
<system.diagnostics> <trace autoflush="true" indentsize="4"> <lis ...