注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

╰此情可待成追忆

当没有阳光时,我自己便是阳光,当没有快乐时,我自己便是快乐

 
 
 

日志

 
 

ext.net TreePanel动态生成树和选择父节点下面的子节点都选中  

2013-12-25 11:08:53|  分类: Ext.NET |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

<ext:TreePanel ID="treeMenu" runat="server" Height="250" Width="300" Shadow="None"
FieldLabel="角色菜单" AutoScroll="true" Animate="true" EnableDD="true" ContainerScroll="true"
RootVisible="false">
<TopBar>
<ext:Toolbar ID="Toolbar3" runat="server">
<Items>
<ext:Button ID="Button12" runat="server" Text="展开">
<Listeners>
<Click Handler="treeMenu.expandAll();" />
</Listeners>
</ext:Button>
<ext:Button ID="Button13" runat="server" Text="收缩">
<Listeners>
<Click Handler="treeMenu.collapseAll();" />
</Listeners>
</ext:Button>
</Items>
</ext:Toolbar>
</TopBar>
<%-- 树控件父子节点选中 --%>
<Listeners>
<CheckChange Handler="checkChange2(node.id,node,node.getUI());" />
</Listeners>
</ext:TreePanel>

选择父节点,下面的子节点都选中的js方法:

<!-- TreePanel 的Checkbox操作及父子级Checkbox联动
http://blog.csdn.net/llxchen/article/details/7919392
-->
<script type="text/javascript">
//选择父节点,下面的子节点也选中
function checkChange2(nodeid, node, value) {
var checked = value.checkbox.checked; //获取节点上的checkbox控件
node.expand(); //展开下面的节点
node.attributes.checked = checked;
node.eachChild(function (child) {
child.ui.toggleCheck(checked);
child.attributes.checked = checked;
child.fireEvent('checkchange', child, checked);
});
}
</script>

后台.cs生成树方法

protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack && !X.IsAjaxRequest)
{
MenuTreeBind();
}
}


//绑定菜单树
protected Ext.Net.TreeNodeCollection MenuTreeBind()
{
try
{
treeMenu.Root.Clear();
//根节点
Ext.Net.TreeNode Root = new Ext.Net.TreeNode("角色菜单");
treeMenu.Root.Add(Root);
//treeMenu.Title = "角色菜单";
treeMenu.FieldLabel = "角色菜单";
treeMenu.RootVisible = false; //是否显示根节点
treeMenu.Border = true; //是否显示边框?
treeMenu.UseArrows = false; //是否使用三角指示节点
treeMenu.Lines = true; //是否显示节点连接虚线
//////////////////////////////////////////////////////////////////////////
var sql = from a in db.aspnet_Menu
where a.@class == 1
orderby a.sortBy
select a;
foreach (var c in sql)
{
//添加一级节点
Ext.Net.TreeNode pNode = new Ext.Net.TreeNode();
pNode.Text = c.title; //节点名称
pNode.NodeID = c.id.ToString(); //id
//if (c.icon != null && c.icon.ToString() != "")
// pNode.Icon = (Icon)Enum.Parse(typeof(Icon), c.icon);
pNode.Expanded = false; //自动展开父节点
pNode.Draggable = false; //节点是否可拖放
pNode.Checked = ThreeStateBool.False;

Root.Nodes.Add(pNode);
////////////////////////////////////////////////////////////////
var sql2 = from a in db.aspnet_Menu
where a.parentId == c.id //&& a.@class == 2//(i + 1)
orderby a.sortBy
select a;
//如果还有下一级菜单,则该节点作为父菜单
if (sql2.Count() > 0)
{
foreach (var d in sql2)
{
var sql3 = from a in db.aspnet_Menu
where a.parentId == d.id //&& a.@class == 3//(i + 1)
orderby a.sortBy
select a;

if (sql3.Count() > 0)
{
//添加二级节点(下面还有子节点)
Ext.Net.TreeNode cNode = new Ext.Net.TreeNode();
cNode.Text = d.title; //节点名称
cNode.NodeID = d.id.ToString(); //id
//if (d.icon != null && d.icon.ToString() != "")
// cNode.Icon = (Icon)Enum.Parse(typeof(Icon), d.icon);
cNode.Expanded = false; //自动展开父节点
cNode.Draggable = false; //节点是否可拖放
cNode.Checked = ThreeStateBool.False;

pNode.Nodes.Add(cNode);

foreach (var e in sql3)
{
//添加三级节点
Ext.Net.TreeNode eNode = new Ext.Net.TreeNode();
eNode.Text = e.title;
eNode.NodeID = e.id.ToString();
//if (e.icon != null && e.icon.ToString() != "")
// eNode.Icon = (Icon)Enum.Parse(typeof(Icon), e.icon); //"UserBrown"
eNode.Leaf = true; //是否子节点
eNode.Draggable = false; //节点是否可拖放
eNode.Checked = ThreeStateBool.False; //节点添加checkbox复选框

cNode.Nodes.Add(eNode);
}
}
else
{
//添加二级节点(最后的子节点,下面没有子节点了)
Ext.Net.TreeNode cNode = new Ext.Net.TreeNode();
cNode.Text = d.title;
cNode.NodeID = d.id.ToString();
if (d.icon != null && d.icon.ToString() != "")
cNode.Icon = (Icon)Enum.Parse(typeof(Icon), d.icon); //"UserBrown"
cNode.Leaf = true; //是否子节点
cNode.Draggable = false; //节点是否可拖放
cNode.Checked = ThreeStateBool.False; //节点添加checkbox复选框

pNode.Nodes.Add(cNode);
}
}
}
}
}
catch (Exception ex)
{
myClientScript.Alert("绑定树控件错误:" + ex);
}
return treeMenu.Root;
}



  评论这张
 
阅读(1432)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017