了一个展开收缩的东东,留着以后万一用到

后台递归生成的函数(这里是一个反射参数展示,支持多层级展开显示,后台反射如何多层级解析的方法有时间再补上吧)

/// <summary>
/// 递归生成html展示request属性
/// </summary>
/// <param name="listProperties">request属性集合</param>
/// <returns>html</returns>
public static string OutputRequest(List<PropertyViewModel> listProperties)
{
const string contractImg = "<img src=\"../Cake/Easyui/themes/icons/edit_remove.png\" width=\"16px\" height=\"16px\" border=\"0px\" style=\"vertical-align: middle\" />";
const string output = "<table><tbody>{0}</tbody></table>";
var html = new StringBuilder();
if (listProperties == null || listProperties.Count <= 0) return string.Empty;

foreach (var propertyOrField in listProperties)
{
var tr = new StringBuilder();
tr.AppendFormat("<tr>");
if (propertyOrField.Type.Properties != null && propertyOrField.Type.Properties.Count > 0)
tr.AppendFormat("<td class=\"onclick\">{1}&nbsp;&nbsp;{0}</td>", propertyOrField.Name, contractImg);
else
tr.AppendFormat("<td>{0}</td>", propertyOrField.Name);
tr.AppendFormat("<td>[{0}]</td>", propertyOrField.Type.Name.EscapeSequence());//特殊字符转移 用于前端html展示
tr.AppendFormat("<td>{0}</td>", propertyOrField.Summary);
tr.AppendFormat("</tr>");
html.Append(tr);
if (propertyOrField.Type.Properties != null && propertyOrField.Type.Properties.Count > 0)
html.AppendFormat("<tr class=\"expand\"><td style=\"padding-left:30px\" colspan=\"3\">{0}</td></tr>", OutputRequest(propertyOrField.Type.Properties));
}
return string.Format(output, html);
}

展开/收缩 ul的更多相关文章

  1. SlickGrid example 5:带子项的展开收缩

    带子项的展开收缩.   代码: <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Ty ...

  2. js之展开收缩菜单,用到window.onload ,onclick,

    目标效果:点击标签1,如果列表标签的style的display是block,改成none,否则改成block,来达到展开收缩菜单效果 一.准备阶段 html文件 <!DOCTYPE html&g ...

  3. 修改mui accordion(折叠面板)默认展开收缩行为

    mui的折叠面板 accordion 默认展开收缩逻辑是,展开其中一个的同时收缩起同级已经展开的元素. 实际需求:展开其中一个不必收缩同级元素. 分析mui.js源代码: window.addEven ...

  4. 点击UITableView的cell展开收缩

    在项目中有个需求,点击表视图的单元格展开,再点击另外一个单元格或者本身又收缩,经过一段时间尝试,实现了该功能,现在记录分享总结下.   首先要理解UITableView代理方法调用的先后顺序.   当 ...

  5. HTML5每日一练之details展开收缩标签的应用

    details标签的出现,为我们带来了更好的用户体验,不必为这种收缩展开的效果再编写JS来实现.注:目前仅Chrome支持此标签. details有一个新增加的子标签——summary,当鼠标点击su ...

  6. js实现的侧边栏展开收缩效果

    原文地址:http://www.softwhy.com/forum.php?mod=viewthread&tid=12246 <!DOCTYPE html> <html> ...

  7. WordPress文章页添加展开/收缩功能

    很多时候我们在WordPress上发布一些文章的时候里面都包含了很多的代码,我一般又不喜欢把代码压缩起来而喜欢让代码格式化显示,但是格式化显示通常会让文章内容看起来很多,不便于访问者浏览,所以今天就介 ...

  8. dhtmlxtree 节点 展开收缩:新增了直接点 文本内容 也 实现了 展开收缩 功能(并记住了展开、收缩状态)

    dhtmlxtree 节点 展开收缩通常情况我们按 +- 就实现了 展开收缩 功能,为了方便我们新增了直接点 文本内容 也 实现了 展开收缩 功能(并记住了展开.收缩状态) tree = new dh ...

  9. jQuery弹性展开收缩菜单插件gooey.js

    分享一款基于jQuery弹性展开收缩菜单插件gooey.js.这是一款基于gooey.js插件实现的弹性菜单特效代码.效果图如下: 在线预览   源码下载 实现的代码. html代码: <hea ...

随机推荐

  1. BZOJ 3956 Count 解题报告

    好点对的个数是\(O(n)\)的,而且我们可以 \(O(n)\) 地求出所有好点对. 我们把这些点对以右端点为关键字从小到大排序,再弄个扫描线,每次把右端点在扫描线上的点对的左端点加入线段树,于是我们 ...

  2. How to Run Node.js with Express on Mobile Devices

    We released a JXcore plugin for Apache Cordova recently and in this article I will show how to run a ...

  3. java中获得jar包执行路径的方法

    当我们由于某种需要需要的得到jar的路径是可以用下面的方式来获得: basePath = new Solution().getClass().getProtectionDomain().getCode ...

  4. Memcached总结四:用ava程序连接memcached进行操作

    1. Memcached的Java环境设置 需要下载spymemcached-2.10.3.jar,并把这个jar放到java程序的classpath中才能使用memcached. 在下面的程序,假设 ...

  5. Ubuntu 出现apt-get: Package has no installation candidate问题

    今天在安装软件的时候出现了Package has no installation candidate的问题,如: #  apt-get install <packagename> Read ...

  6. MySQL事务之数据结构

    事务是关系型数据库的核心,贯穿整个源代码,先来瞅瞅相关的数据结构,揭开面纱: server层和innodb引擎层分别对应了不同的数据结构,但相互关联: server层需要引擎注册事务,以便server ...

  7. 结构体 fseg_inode_t;

    typedef byte fseg_inode_t;

  8. c#基础这些你都看过吗?(一)-----仅供初学者使用

    1.注释(不写注释是流氓,名字瞎起是扯淡)‘///’一般用于注释函数,注释类.2.快捷键ctrl+k+d(有语法错误无法进行对齐)ctrl+j(快速弹出只能提示)shift+end,shift+hom ...

  9. POJ 3159 Candies 解题报告(差分约束 Dijkstra+优先队列 SPFA+栈)

    原题地址:http://poj.org/problem?id=3159 题意大概是班长发糖果,班里面有不良风气,A希望B的糖果不比自己多C个.班长要满足小朋友的需求,而且要让自己的糖果比snoopy的 ...

  10. [HDU POJ] 逆序数

    HDU 1394 Minimum Inversion Number Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/3276 ...