你的位置:首页 > 软件开发 > ASP.net > 从头开始一步一步实现EF6+Autofac+MVC5+Bootstarp极简前后台ajax表格展示及分页(二)前端修改、添加表格行点击弹出模态框

从头开始一步一步实现EF6+Autofac+MVC5+Bootstarp极简前后台ajax表格展示及分页(二)前端修改、添加表格行点击弹出模态框

发布时间:2016-04-26 02:00:06
在前一篇中,由于不懂jquery,前端做的太差了,今天做稍做修改,增加一个跳转到指定页面功能,表格行点击样式变化。并且在表格中加入bootstarp的按钮组,按钮点击后弹出模态框,须修改common,contorler,view。在common中添加一个方法重载,以展示按钮组,另 ...

从头开始一步一步实现EF6+Autofac+MVC5+Bootstarp极简前后台ajax表格展示及分页(二)前端修改、添加表格行点击弹出模态框

在前一篇中,由于不懂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 (#换成@)。