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

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

/// <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. DOS系统里,分屏显示目录的命令是什么??

    dir /sdir /pdir /w 我记得这三个都是我当年常用的命令,有分瓶的,有滚动时候每页停顿的,还有去掉详细信息的吧,, 可以放在一起使用.如dir /p/w /p是滚动时候中间停顿的,/w是 ...

  2. UPUPW PHP环境集成包

    UPUPW PHP环境集成包 http://www.upupw.net/

  3. [codility]PrefixMaxProduct

    Codility Certificate题目.求product最大值,product为长度*出现次数,例子"abababa"如下: "a", whose pro ...

  4. 匿名函数和Lambda表达式

    这个题目有点牵强,真不知道如何取一个比较中意的名称,写技术博客,我很少拘泥小节,但是注重细节,如果细节都出现问题了,那么这个博文也就失去了价值. 其实应该从委托说起,委托是C#中的一个重要的内容,记得 ...

  5. 【Quick 3.3】资源脚本加密及热更新(三)热更新模块

    [Quick 3.3]资源脚本加密及热更新(三)热更新模块 注:本文基于Quick-cocos2dx-3.3版本编写 一.介绍 lua相对于c++开发的优点之一是代码可以在运行的时候才加载,基于此我们 ...

  6. C++ sizeof的使用总结

    说明:以下代码在VS2008中通过,在32位操作系统下. 1.      定义 sizeof是一个操作符(operator). 其作用是返回一个对象或类型所占的内存字节数. 其返回值类型为size_t ...

  7. 坑爹的libxml2 for mingw 编译

    按照官方的readerme.txt说法生成Makefile之后,你会发现编译时候需要创建几个文件夹. 还有就是因为宏定义问题,报错,需要在config.h中加入#define HAVE_STDINT_ ...

  8. Android开发之PagerAdapter

    public class ViewPagerAdapter extends PagerAdapter { private List<View> views; private Context ...

  9. Azure Backup 简介

    ViswanathTata云 +Enterprise 项目经理 AzureBackup是 Azure恢复服务的一部分,在安全高效的环境中对上传到 Azure的数据提供简单可靠的管理和保护.Azur ...

  10. 关于app transfer之后的开发

    原文  http://blog.csdn.net/donghong2008/article/details/38020855 网络上有很多开发者提问怎么转让App并想知道具体的流程.实际上Appsto ...