gpt4 book ai didi

asp.net 用XML生成放便扩展的自定义树

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 27 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章asp.net 用XML生成放便扩展的自定义树由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

数据源为XML,因此放便扩展。 
废话不多说,直接上代码(因一些原因,把部分数据修改或精简了)。 
XML代码: 
复制代码代码如下:

<?xml version="1.0" encoding="utf-8" ?> 
<MenuData> 
<Module Id="Business" Permissions="49,53,58,59,65,99,100,70,69" Name="业务管理" IsExpand="true"> 
<Menu Id="Orders" Permissions="49,53,58" Name="我的订单" IsExpand="true"> 
<Item Permissions="49" IsOnlyVip="true" Name="预订单" Url="Business/ProList.aspx" /> 程序代码: 
复制代码代码如下:

using System.Text; 
using System.Collections; 
using System.Xml; 
using System.Web; 
using System; 
/// <summary> 
/// CreateTree 的摘要说明 
/// </summary> 
public class MenuTree 

int index = 0;//菜单栏目ID索引 
private ArrayList havePermission = new ArrayList(); 
private bool isVip = false; 
/// <summary> 
/// 登录用户所拥有的权限 
/// </summary> 
private ArrayList HavePermissions 

get { return havePermission; } 
set { havePermission = value; } 

/// <summary> 
/// 登录用户是否是VIP 
/// </summary> 
private bool IsVip 

get { return isVip; } 
set { isVip = value; } 

/// <summary> 
/// 登录用户所拥有的权限 是否为VIP用户 
/// </summary> 
/// <param name="havePermission"></param> 
/// <param name="isVip"></param> 
public MenuTree(ArrayList havePermission, bool isVip) 

this.HavePermissions = havePermission; 
this.IsVip = isVip; 

/// <summary> 
/// 绑定树 
/// </summary> 
public string BindDataToTree() 

System.Xml.XmlDocument document = new System.Xml.XmlDataDocument(); 
document.Load(HttpContext.Current.Server.MapPath("MenuData.xml")); 
return CreateTreeHtml(document.DocumentElement, 0); 

/// <summary> 
/// 创建栏目树 
/// </summary> 
/// <param name="document">xml节点</param> 
/// <param name="deep">树深度</param> 
private string CreateTreeHtml(System.Xml.XmlNode document, int deep) 

string nodeType = "Menu";//节点的类型,来生成子节点的CSS类型 
StringBuilder treeHtml = new StringBuilder(); 
foreach (System.Xml.XmlNode node in document.ChildNodes) 

string menuId = string.Empty; 
string treeNodeHtml = string.Empty; 
string nodeName = node.Name; 
string showName = GetAttributesValue(node.Attributes["Name"]);//显示栏目名 
string nodeId = GetAttributesValue(node.Attributes["Id"]);//栏目ID 
bool isExpand = GetAttributesValue(node.Attributes["IsExpand"]).ToLower().Trim() == "true" ? true : false;//是否展开 
string permissions = GetAttributesValue(node.Attributes["Permissions"]);//权限字串 
bool isOnlyVip = GetAttributesValue(node.Attributes["IsOnlyVip"]).ToLower().Trim() == "true" ? true : false;//是否只允许VIP访问 
bool isUnVip = GetAttributesValue(node.Attributes["IsUnVip"]).ToLower().Trim() == "true" ? true : false;//是否只准非VIP访问 
string eventScript = GetAttributesValue(node.Attributes["EventScript"]);//事件脚本 
int chlidNodesCount = node.ChildNodes.Count;//子节点数 
bool isPermissions = GetIsPermissions(permissions);//是否有权限 
if (!isPermissions) 

continue; //如果没有权限,不生成此节点 

if (nodeName == "Module") 

if (isUnVip && IsVip) 

continue;//如果为VIP会员 设为不允许访问子栏目 

menuId = GetMenuId(nodeId); 
treeHtml.AppendFormat("<div class='Module' id='Menu{0}' onclick='DoNodes(this);{1}' onselectstart='return false;'>", menuId, eventScript); 
treeHtml.Append(" <img src='/images/sideMenuIcon.gif' /> 相关JS代码: 
复制代码代码如下:

function DoNodes(obj,type) 

var divId=obj.id+'Nodes'; 
var qdivObj=$("#"+divId); 
if(qdivObj.is(":hidden")) 

qdivObj.show(); 
if(type=='menu') 

$(obj).children("img").attr("src","Images/open-menu.gif"); 

else 

qdivObj.siblings(".Menus:visible").hide(); 


else 

qdivObj.hide(); 
if(type=='menu') 

$(obj).children("img").attr("src","Images/close-menu.gif"); 



function DoAClick(id) 

$("#"+id).click(); 

function AlertVip() 

alert("非常抱歉,此模块只对VIP会员开放!");return false; 

最后效果 
asp.net 用XML生成放便扩展的自定义树
此代码我觉得易放便扩展,只要稍改动一下代码就能使用在自己的项目中。
  • asp.net
  • XML
  • 自定义树
  • 延伸 · 阅读

    • 2019-07-08asp.net下合并两个结构相同的DataTable
    • 2019-07-07asp.net Linq TO Sql 分页方法
    • 2019-07-07一天精通asp.net的学习经验小结
    • 2019-07-07asp.net 表单验证新思路
    • 2019-07-06Asp 解析 XML并分页显示源码
    • 2019-07-04ASP.NET 定制简单的错误处理页面实现代码
    精彩推荐
    • ASP.NET教程asp.Net 中获取一周第一天,一月第一天等实现代码

      asp.Net 中获取一周第一天,一月第一天等实现代码

      asp.Net 中获取一周第一天,一月第一天等实现代码... 。

      216 2019-06-30
    • ASP.NET教程asp.net Silverlight中的模式窗体

      asp.net Silverlight中的模式窗体

      现在Web开发技术中流行着模式窗体,这种不用跳转页面又能够满足与用户进行数据交互的手段确实不错,那我今天也谈谈Silverlight中的模式窗体吧。... 。

      脚本之家 190 2019-06-20
    • ASP.NET教程asp.net 上传下载输出二进制流实现代码

      asp.net 上传下载输出二进制流实现代码

      asp.net 上传下载输出二进制流实现代码,需要的朋友可以参考下。... 。

      ASP.NET之家 279 2019-06-29
    • ASP.NET教程asp.net 获取Gridview隐藏列的值

      asp.net 获取Gridview隐藏列的值

      asp.net 获取Gridview隐藏列的值的实现代码。... 。

      脚本之家 323 2019-06-20
    • ASP.NET教程ASP.NET 图片防盗链的实现原理分析

      ASP.NET 图片防盗链的实现原理分析

      防盗链的原理,从图片请求的URL地址上判断是否是我们自己网站上的域名,如果不是,恭喜,你的图片已经被盗链了!... 。

      507 2019-07-03
    • ASP.NET教程Asp.net 基于Cookie简易的权限判断

      Asp.net 基于Cookie简易的权限判断

      基于Cookie简易的权限判断代码,需要的朋友可以参考下。... 。

      ASP.NET之家 176 2019-07-03
    • ASP.NET教程浅析ASP.NET生成随机密码函数

      浅析ASP.NET生成随机密码函数

      在开发需要用户注册后才能使用提供的各项功能的应用程序时,在新用户提交注册信息后,较常见的做法是由程序生成随机密码,然后发送密码到用户注册时填写的电子信箱,用户再用收到的密码来激活其帐户。... 。

      脚本之家 482 2019-06-16
    • ASP.NET教程先装VS再装IIS时出错的解决方法

      先装VS再装IIS时出错的解决方法

      如果先安装了VS再安装IIS,一般都会出错,不能正常使用,原因是什么呢?我查了下资料,收集下,供有需要的兄弟们看下... 。

      357 2019-06-27

    最后此篇关于asp.net 用XML生成放便扩展的自定义树的文章就讲到这里了,如果你想了解更多关于asp.net 用XML生成放便扩展的自定义树的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com