在前一篇中,由于不懂jquery,前端做的太差了,今天做稍做修改,增加一个跳转到指定页面功能,表格行点击样式变化。并且在表格中加入bootstarp的按钮组,按钮点击后弹出模态框,须修改common,contorler,view。在common中添加一个方法重载,以展示按钮组,另 ...
在前一篇中,由于不懂jquery,前端做的太差了,今天做稍做修改,增加一个跳转到指定页面功能,表格行点击样式变化。并且在表格中加入bootstarp的按钮组,按钮点击后弹出模态框,须修改common,contorler,view。
在common中添加一个方法重载,以展示按钮组,另外还加了一个隐藏的Id列,需要增加两个参数,一个指定按钮的bootstarp样式,另一个数组指定按钮的名称
修改后的代码如下
using System.Collections.Generic;using System.Text;using Newtonsoft.Json.Linq;namespace OADemo.Common{ public class JsonStringHelper { /// <summary> /// 通过反射将列表中指定的属性值装配成多行多列的Html文本 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="list"></param> /// <param name="propertyNames">要输出的属性名</param> /// <returns></returns> public static get='_blank'>string GetTbodyHtmlString<T>(List<T> list,params string[] propertyNames) { StringBuilder sb = new StringBuilder(); list.ForEach(o => { sb.Append(@"<tr>");//做一个行的开始 var properties = o.GetType().GetProperties();//得到当前实体类型的所有属性 foreach (var property in properties) { if (propertyNames != null) { foreach (var name in propertyNames) { if (property.Name==name) { string id; if(name=="Id") { id = property.GetValue(o).ToString(); sb.AppendFormat(@"<td hidden='hidden'>{0}</td>",id); } else { sb.AppendFormat(@"<td>{0}</td>", property.GetValue(o).ToString()); } } } } } sb.Append(@"</tr>"); }); return sb.ToString(); } /// <summary> /// 通过反射将列表中指定的属性值装配成多行多列的json格式的Html文本 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="list"></param> /// <param name="propertyNames"></param> /// <returns></returns> public static JObject GetTbodyJObjectStrin<T>(List<T> list, params string[] propertyNames) { return new JObject(new JProperty("tbodyJson", GetTbodyHtmlString(list, propertyNames))); } /// <summary> /// 通过反射将列表中指定的属性值装配成多行多列的json格式的Html文本 /// </summary> /// <typeparam name="T">要展示的实体类型</typeparam> /// <param name="list">实体列表</param> /// <param name="btnNames">按钮的名称</param> /// <param name="btnClassName">按钮的样式类名</param> /// <param name="propertyNames">要展示的实体的属性名</param> /// <returns></returns> public static string GetTbodyHtmlString<T>(List<T> list,string[] btnNames,string btnClassName, params string[] propertyNames) { StringBuilder sb = new StringBuilder(); list.ForEach(o => { sb.Append(@"<tr>");//做一个行的开始 var properties = o.GetType().GetProperties();//得到当前实体类型的所有属性 List<string> ids = new List<string>(); foreach (var property in properties)//遍历所有公共属性 { if (propertyNames != null) { foreach (var name in propertyNames) { if (property.Name == name)//找出跟要展示的属性名 { string id; if (name == "Id") { id = property.GetValue(o).ToString(); sb.AppendFormat(@"<td hidden='hidden'>{0}</td>", id);//添加一个隐藏列 ids.Add(id); } else { sb.AppendFormat(@"<td>{0}</td>", property.GetValue(o).ToString());//添加其它列 } } } } } ids.ForEach(i => { if(btnNames.Length>0) { sb.Append(@"<td><div class='btn - toolbar' role='toolbar'");//bootstarp按钮组 foreach(var name in btnNames)//添加按钮组列 { sb.AppendFormat(@"<div class='btn-group' role='group'> <button class='{0}'>{1}</button> </div>",btnClassName,name); } sb.Append(@"</div></td></tr>"); } }); }); return sb.ToString(); } }}
原标题:从头开始一步一步实现EF6+Autofac+MVC5+Bootstarp极简前后台ajax表格展示及分页(二)前端修改、添加表格行点击弹出模态框
关键词:ajax
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。