RDIFramework.NET V2.7 Web版本升手风琴+树型目录(2级+)方法
手风琴风格在Web应用非常的普遍,越来越多的Web应用都是采用这种方式来体现各个功能模块,传统的手风琴风格只支持两级模块,当我们的功能模块多于两级时,我们一般采用树来构造功能菜单(我们的框架也提供了这种方式),但这种方式没有手风琴效果美观,因此我们采用了手风琴+树的形式来构造“手风琴+树型目录(2级+)”界面风格,以展示多级功能菜单,满足用户的要求。Web展示效果如下:
要以“手风琴+树型目录(2级+)”的风格来展示功能模块,我们需要在“系统配置”的“个性化”设置中进行个性化设置,这儿的设置可针对不同人的爱好进行各自的设置。如下图所示:
具体实现方式为以下几个步骤:
一、设置SysConfig.js,增加一个展示方式,如下图所示:
二、在newlayout.js中增加一个展现形式的判断,单独判断我们新增的“AccordionTree”展示样式,如下图所示:
其中的AccordionTree.init();代码如下:
//手风琴 + tree var AccordionTree = { init: function () { $.each(_menus, function (i, n) { var cssIcon = 'icon icon-application_osx'; //没有设置图标,则取一个默认图标 if (n.iconCls) { cssIcon = n.iconCls; } $('#wnav').append('<div style="padding:0px;" title="' + n.text + '" data-options="border:false,iconCls:\'' + cssIcon + '\'"><ul id="nt' + i + '"></ul></div>'); }); $("#wnav").accordion({ fit: true, border: false, onSelect: function (t, i) { $('#nt' + i).tree({ lines: false, animate: true, data: _menus[i].children, onClick: function (node) { if (node.attributes.url != "" && node.attributes.url != '#') { addTab(node.text, node.attributes.url + '?navid=' + node.id, node.iconCls); } else { $('#nt' + index).tree('toggle', node.target); } } }); } }); } };
三、修改Default.aspx.cs代码,如下图所示:
其中的:GetAccordionTreeJsonByTable代码如下:
/// <summary> /// 根据DataTable生成AccordionTree Json树结构 /// </summary> /// <param name="tabel">数据源</param> /// <param name="idCol">ID列</param> /// <param name="txtCol">Text列</param> /// <param name="rela">关系字段</param> /// <param name="pId">父ID</param> /// <returns>返回json数据</returns> private string GetAccordionTreeJsonByTable(DataTable tabel, string idCol, string txtCol, string rela, object pId) { result += tmpStr; tmpStr = string.Empty; if (tabel.Rows.Count <= 0) return result; tmpStr += "["; var filer = string.Format("{0}='{1}'", rela, pId); var rows = tabel.Select(filer); if (rows.Length > 0) { foreach (var row in from row in rows let moduleType = BusinessLogic.ConvertToInt(row[PiModuleTable.FieldModuleType]) where moduleType == null || moduleType == 2 || moduleType == 3 select row) { tmpStr += "{\"id\":\"" + row[idCol] + "\",\"text\":\"" + row[txtCol] + "\",\"iconCls\":\"" + BusinessLogic.ConvertToString(row[PiModuleTable.FieldIconCss]).Replace("icon ", "") + "\",\"attributes\":{" + "\"url\":\"" + row[PiModuleTable.FieldNavigateUrl] + "\",\"FullName\":\"" + row[PiModuleTable.FieldFullName] + "\"}"; if (tabel.Select(string.Format("{0}='{1}'", rela, row[idCol])).Length > 0) { tmpStr += RDIFramework.WebCommon.PublicMethod.GetInt(row[PiModuleTable.FieldExpand]) == 1 ? ",\"state\":\"open\"" : ",\"state\":\"closed\""; tmpStr += ",\"children\":"; GetAccordionTreeJsonByTable(tabel, idCol, txtCol, rela, row[idCol]); result += tmpStr; tmpStr = string.Empty; } result += tmpStr; tmpStr = string.Empty; tmpStr += "},"; } tmpStr = tmpStr.Remove(tmpStr.Length - 1, 1); } tmpStr += "]"; result += tmpStr; tmpStr = string.Empty; return result; }
至此,我们“手风琴+树型目录(2级+)”界面风格整理开发完成。
附注:在Default.aspx.cs代码中,我们最初的代码已经有一个名为“GetAccordionTreeJsonByTable”的方法,请将其改名为“GetAccordionJsonByTable”,相应的调用它的地方也要同步修改下即可。
作者: EricHu 出处: http://www.cnblogs.com/huyong 微博: 腾讯 Email: 406590790@qq.com QQ 交流:406590790 :16653241 平台博客: 【CSDN】http://blog.csdn.net/chinahuyong 【CNBLOGS】http://www.cnblogs.com/huyong 关于作者:高级工程师、信息系统项目管理师、DBA。专注于微软平台项目架构、管理和企业解决方案,多年项目开发与管理经验,曾多次组织并开发多个大型项目,精通DotNet,DB(SqlServer、Oracle等)技术。熟悉Java、Delhpi及Linux操作系统,有扎实的网络知识。在面向对象、面向服务以及数据库领域有一定的造诣。现从事DB管理与开发、WinForm、WCF、WebService、网页数据抓取以及ASP.NET等项目管理、开发、架构等工作。 如有问题或建议,请多多赐教! 本文版权归作者和CNBLOGS博客共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,如有问题,可以通过邮箱或QQ 联系我,非常感谢。
相关推荐
在C#.NET编程环境下,构建一个基于树型目录的点菜系统是一项常见的任务,它能够为用户提供直观且易于操作的界面。这样的系统通常涉及到多个关键知识点,包括但不限于数据结构、事件处理、用户交互以及数据库操作。...
在IT行业中,构建一个树型目录结构是常见的需求,特别是在网页设计和开发中。ASP(Active Server Pages)是一种由微软开发的服务器端脚本环境,它允许开发人员使用VBScript或JScript等语言创建动态网页。而Access则...
在这个"javascript实现无极分类+树型菜单目录.rar"项目中,我们主要关注的是如何利用JavaScript处理无极分类并创建树形菜单,这通常在组织复杂的数据结构,如网站导航或文件系统时非常有用。 首先,无极分类是指...
ASP.NET是微软公司推出的一种用于构建Web应用程序的框架,它提供了丰富的控件和服务器端功能,简化了Web开发过程。在ASP.NET 2003版本中,开发人员可以利用.NET Framework 1.1的特性,如控件生命周期、数据绑定、...
**jQuery树型多级手风琴菜单代码详解** 在网页设计和开发中,为了提高用户体验和界面的可操作性,常常会使用到各种交互效果,其中树型多级手风琴菜单是一种常见的导航元素。本篇文章将深入解析一款基于jQuery实现的...
2. **CSS样式**:为了使树型菜单看起来更像一个树,我们需要一些CSS来实现折叠/展开的视觉效果,以及节点的缩进和选中状态。 ```css .treeMenu li { list-style-type: none; margin-left: 20px; } .treeMenu ....
至于如何实现树型目录,一种常见的方法是递归结构。每个目录节点包含其子目录和文件,形成一个嵌套的数据结构。在JSP中,可以使用巢状循环来遍历这个结构,生成HTML代码表示目录树。在JavaScript中,可以通过遍历...
2. **树型目录**:在Web开发中,树型目录通常指的是以节点和子节点形式展示的文件或文件夹结构,类似于计算机文件系统的目录层次。这种结构使用户能直观地浏览和操作多级目录,提高用户体验。在ASP中实现树型目录...
在.NET开发中,构建树型二级菜单和二级目录是常见的需求,主要用于网站导航或数据组织。这个实例提供了如何在Visual Studio(VS)环境下创建这样的功能。以下是对这一实例的详细解读: 1. **树型结构**: 树型结构...
"基于Web实现树型目录两种方式及比较" 在基于Web的应用程序中,树型目录结构是一种非常有用的组织方式,它可以使用户直观地了解Web站点的服务关联结构、内容及资源信息。在这篇文章中,我们将讨论基于Web实现树型...
在描述中提到的“jb+数据库+三级树型菜单”可能指的是使用Java(jb)技术来构建一个数据库驱动的应用,其中包含了一个能够展示三层结构的树型菜单。这个菜单系统可能是为了方便用户在复杂的数据结构中导航,比如在...
一个无限级树型目录 yuer 17:49 2006-11-25 QQ:28551082
cq2s树型论坛是一款基于Web的社区交流平台,其v4.3版本带来了一些重要的更新和优化。这款论坛软件以其独特的树型结构为特点,提供了用户友好的交互体验,使得讨论话题能够清晰地按照层级关系展示,方便用户追踪和...
js代码-树型目录菜单.zip
"PHP树型目录"是指使用PHP实现的一种显示和管理文件系统目录结构的方法。通过创建一个树形视图,用户可以更直观地浏览和操作多级目录。这种功能在文件管理系统、文件上传下载平台或者网站后台管理系统中非常常见。 ...
"ext+Struts2+Spring+Hibernate 树型菜单"是一个典型的Java Web开发框架组合,用于创建具有树状结构的用户界面,通常用于数据的层级展示,比如部门结构、文件目录等。下面将详细解释这些技术和如何协同工作。 **...
在Web应用和桌面应用中,树型菜单通常用于组织和导航层级数据,它允许用户通过展开和折叠节点来查看和访问各级别内容。 Flash 8是Adobe Flash的第八个主要版本,它主要用于创建动画、互动内容以及富互联网应用程序...
动态树型目录是Ajax技术的一种常见应用,通常用于文件管理系统、组织结构展示或者网站导航菜单等场景。 在“Ajax动态树型目录”中,我们首先需要理解树型目录的概念。树型目录是一种层次化的结构,模拟了现实中文件...
### Div+CSS+JS树型菜单知识点解析 #### 一、概述 在现代网页设计与开发过程中,良好的导航系统对于提升用户体验至关重要。“Div+CSS+JS树型菜单”是一种常用的前端技术实现方案,用于构建多级菜单结构。该技术...
ASP.NET中的树型控件(TreeView)是一种常见的用户界面元素,它用于展示层次结构的数据,比如目录结构、组织架构或者数据库的分类信息。在Web应用中,TreeView控件提供了一种交互式的方式来浏览和操作多级数据,让...