RDIFramework.NET V2.7 Web版本号升手风琴+树型文件夹(2级+)方法
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
QQ群:16653241
平台博客: 【CSDN】http://blog.csdn.net/chinahuyong
【CNBLOGS】http://www.cnblogs.com/huyong
关于作者:高级project师、信息系统项目管理师、DBA。专注于微软平台项目架构、管理和企业解决方式,多年项目开发与管理经验,曾多次组织并开发多个大型项目,精通DotNet,DB(SqlServer、Oracle等)技术。熟悉Java、Delhpi及Linux操作系统,有扎实的网络知识。在面向对象、面向服务以及数据库领域有一定的造诣。现从事DB管理与开发、WinForm、WCF、WebService、网页数据抓取以及ASP.NET等项目管理、开发、架构等工作。
如有问题或建议,请多多赐教!
本文版权归作者和CNBLOGS博客共同拥有,欢迎转载,但未经作者允许必须保留此段声明,且在文章页面明显位置给出原文连接,如有问题,能够通过邮箱或QQ 联系我,很感谢。

RDIFramework.NET V2.7 Web版本号升手风琴+树型文件夹(2级+)方法的更多相关文章
- RDIFramework.NET V2.7 Web版本升手风琴+树型目录(2级+)方法
RDIFramework.NET V2.7 Web版本升手风琴+树型目录(2级+)方法 手风琴风格在Web应用非常的普遍,越来越多的Web应用都是采用这种方式来体现各个功能模块,传统的手风琴风格只支持 ...
- 框架基础学习之--详解web+maven+spring+mybatis+struts框架文件夹作用
详解web+maven+spring+mybatis+struts框架文件夹作用 1.程序名 2.Mybatis,mybatis是数据持久层,就是和对象类有关系的东西 3.存放java文件,xml,p ...
- #WEB安全基础 : HTML/CSS | 0x3文件夹管理网站
没有头脑的管理方式会酿成大灾难,应该使用文件夹管理网站 这是一个典型的管理方法,现在传授给你,听好了 下面是0x3初识a标签里使用的网站的目录,我把它重新配置了一下
- 发布web项目时,忽略指定文件夹或文件
参考:http://blogs.msdn.com/b/webdev/archive/2010/04/22/web-deployment-excluding-files-and-folders-via- ...
- 使用eclipse进行web开发的3个lib文件夹
1.右击project>Build Path>Configure Build Path(一般是在你的项目文件夹中手动创建一个lib文件夹,里面设置若干子文件夹存放不同的jar包,然后通过C ...
- java获取web项目下文件夹的路径方法
方法一: String realPath=request.getSession().getServletContext() .getRealPath("upload"); 方法二: ...
- RDIFramework.NET V2.9版本号 WinFom部分新增与修正的功能
RDIFramework.NET V2.9版本号 WinFom部分新增与修正的功能 转眼间RDIFramework.NET框架走了快6个年头了,随着一个版本号一个版本号的升级改造,如今已经越来越完美 ...
- RDIFramework.NETV2.9版本 Web新增至14套皮肤风格+三套界面组合(共42套皮肤组合)
客户的心声是最重要的,RDIFramework.NET V2.9版本不仅对WinForm版做了大的调整,Web版也彻彻底底的底翻上的优化了一篇,不仅增加了很多的新功能.新特色,用户最期望的界面风格也进 ...
- RDIFramework.NET V2.5(.NET快速信息化系统开发框架) Web版界面样例(可参考)
RDIFramework.NET V2.5(.NET快速信息化系统开发框架) Web版介绍 现已升级到V2.8,点击查看 B/S结构(Browser/Server,浏览器/服务器模式),是WEB兴起 ...
随机推荐
- Window8.1下oracle数据库报:ora-12170 操作超时
PLSQL 链接本机:oracle11g 服务名:orcl 一直链接不上,等了大概3分钟, 提示:ora-12170操作超时: 重启了数据库 问题还是无法解决;上网搜了一下,发现报ora-1217 ...
- java 完全解耦
只要有一个方法操作的是类而非接口,那么你就只能使用这个类及其子类,如果你想要将这个方法应用于不在此继承结构中的某个类,那么你就会触霉头,接口可以在很大程度上放宽这种限制,因此,我们可以编写可服用性更好 ...
- VC++一些开发心得与调试技巧
1.如何在Release状态下进行调试 Project->Setting=>ProjectSetting对话框,选择Release状态.C/C++标签中的Category选Gen ...
- 算法笔记(C++)
一.基础篇 C++标准模板库(STL) 1.vector 可以理解为“变长数组” #include <vector> vector<typename> name; vector ...
- salesforce
salesforce&apex salesforce开发的小心得 salesforce零基础学习(七十七)队列的实现以及应用 摘要: 队列和栈简单的区别为栈是后进先出,队列是先进先出.队列也是 ...
- MySQL子查询,派生表和通用表达式
一:子查询 1.介绍 在另一个查询(外部查询)中嵌套另一个查询语句(内部查询),并使用内部查询的结果值作为外部查询条件. 2.子查询在where中 SELECT customerNumber, che ...
- matlab中等间距坐标距离表示不等间距数据值,以及延伸
1.问题 平时只是用了一下plot的简单画图. x轴或者y轴的大小比例都是按照系统自动的生成. 但是如果出现巨大的比例的时候,如何保证在另一个轴上可以同等机会展示结果呢? 2.程序 这里是自己书写的程 ...
- SQLTransientConnectionException: HikariPool-1 - Connection is not available, request timed out after 30001ms.
SQLTransientConnectionException: HikariPool-1 - Connection is not available, request timed out after ...
- 内存缓存 ehcache
内存缓存需要对内存缓存每个参数的配置意义搞明白,才能很好地去使用,例如失效时间.存活时间. 是否存储在磁盘.是否永久有效,参数要了解清楚后进行使用,不要在不清楚时盲目使用,会导致意想不到 的问题发生. ...
- Prufer codes与Generalized Cayley's Formula
Prufer序列 在一棵n个节点带标号树中,我们认为度数为1的点为叶子.n个点的树的Prufer序列是经过下面流程得到的一个长度为n-2的序列. 1.若当前树中只剩下两个点,退出,否则执行2. 2.找 ...
