加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

BootStrap-Table 分页

发布时间:2020-12-17 20:58:54 所属栏目:安全 来源:网络整理
导读:bootstrap-Table:http://bootstrap-table.wenzhixin.net.cn/ 页面 div ? class = "widget-content" ???? div ? id = "toolbar" ???????? a ? id = "add" ? class = "btn?btn-default" ? href = "/CompanyInfo/Add" ???????????? i ? class = "glyphicon?glyp

bootstrap-Table:http://bootstrap-table.wenzhixin.net.cn/

页面

<div?class="widget-content">
????<div?id="toolbar">
????????<a?id="add"?class="btn?btn-default"?href="/CompanyInfo/Add">
????????????<i?class="glyphicon?glyphicon-plus"></i>?新建
????????</a>
????</div>
????<table?id="table"?class="table?table-bordered?dataTable"
???????????data-toggle="table"
???????????data-search="true"
???????????data-toolbar="#toolbar"
???????????data-url="@Url.Action("GetPageData")"
???????????data-method="post"
???????????data-content-type="application/x-www-form-urlencoded"
???????????data-side-pagination="server"
???????????data-pagination="true"
???????????data-sort-name="CompanyName"
???????????data-sort-order="asc"
???????????data-query-params="queryParams">
????????<thead>
????????????<tr>
????????????????<th?data-field="CompanyName"?data-sortable="true"?data-halign="center">企业名称</th>
????????????????<th?data-field="CompanyShort"?data-sortable="true"?data-halign="center">企业简称</th>
????????????????<th?data-field="Address"?data-sortable="true"?data-halign="center">地址</th>
????????????????<th?data-field="LinkName"?data-sortable="true"?data-halign="center">联系人</th>
????????????????<th?data-field="LinkTel"?data-sortable="true"?data-halign="center">联系电话</th>
????????????????<th?data-align="center"?data-formatter="operateFormatter"?data-width="60px"></th>
????????????</tr>
????????</thead>
????</table>
</div>
<link?rel="stylesheet"?href="~/Content/bootstrap-table.css"?/>
@section?scripts
{
????<script?src="~/Scripts/bootstrap-table.js"?type="text/javascript"></script>
????<script?src="~/Scripts/locales/bootstrap-table-zh-CN.js"?type="text/javascript"></script>
????<script?src="~/Scripts/bootstrap.tables.js"?type="text/javascript"></script>
????<script?type="text/javascript">
????????//设置传入参数
????????function?queryParams(params)?{
????????????return?params;
????????}
 
????????//操作按钮
????????function?operateFormatter(value,?row)?{
????????????return?'<a?href="@Url.Action("Edit")/'?+?row.CompanyID?+?'"><i?class="glyphicon?glyphicon-edit"></i></a>&nbsp;&nbsp;'?+
????????????????'<a?href="@Url.Action("Delete")/'?+?row.CompanyID?+?'"?onclick="return?confirm("确认删除?")"><i?class="glyphicon?glyphicon-remove"></i></a>';
????????}
????</script>
}
控制器代码:

///?<summary>
///?获取数据
///?</summary>
///?<returns></returns>
[HttpPost]
public?JsonResult?GetPageData()
{
????//limit,?offset,?search,?sort,?order?
????//pageSize,?pageNumber,?searchText,?sortName,?sortOrder.?
????int?pageSize?=?Convert.ToInt32(Request.Form["limit"]);
????int?pageNumber?=?Convert.ToInt32(Request.Form["offset"]);
????string?sortName?=?Request.Form["sort"];
????string?sortOrder?=?Request.Form["order"];
????string?searchText?=?Request.Form["search"];
 
????int?total;
????var?rows?=?String.IsNullOrEmpty(searchText)
??????????_service.GetPageData(sortName,?sortOrder,?pageSize,?out?total)
????????:?_service.GetPageData(m?=>?m.CompanyName.Contains(searchText),????????????out?total);
????var?json?=?Json(new?{?total,?rows?},?JsonRequestBehavior.AllowGet);
????return?json;
}

分页代码:

///?<summary>
///?查找分页数据列表
///?</summary>
///?<param?name="pageNumber">当前页</param>
///?<param?name="pageSize">每页记录数</param>
///?<param?name="totalRecord">总记录数</param>
///?<param?name="predicate">查询表达式</param>
///?<param?name="sortOrder">是否升序</param>
///?<param?name="sortName">排序字段名称</param>
///?<returns>实例列表</returns>
public?IQueryable<T>?GetPageData<TS>(Expression<Func<T,?bool>>?predicate,?string?sortName,?string?sortOrder,????int?pageNumber,?int?pageSize,?out?int?totalRecord)
{
????_nContext.Configuration.LazyLoadingEnabled?=?false;
????_nContext.Configuration.ProxyCreationEnabled?=?false;
????var?list?=?_nContext.Set<T>().Where<T>(predicate);
????totalRecord?=?list.Count();
????list?=?OrderBy(list,?sortOrder?==?"asc").Skip(pageNumber?*?pageSize).Take(pageSize);
????_nContext.Configuration.LazyLoadingEnabled?=?true;
????_nContext.Configuration.ProxyCreationEnabled?=?true;
????return?list;
}
 
///?<summary>
///?查找分页数据列表
///?</summary>
///?<param?name="pageNumber">当前页</param>
///?<param?name="pageSize">每页记录数</param>
///?<param?name="totalRecord">总记录数</param>
///?<param?name="sortOrder">是否升序</param>
///?<param?name="sortName">排序字段名称</param>
///?<returns>实例列表</returns>
public?IQueryable<T>?GetPageData<TS>(string?sortName,?int?pageNumber,?out?int?totalRecord)
{
????_nContext.Configuration.LazyLoadingEnabled?=?false;
????_nContext.Configuration.ProxyCreationEnabled?=?false;
????var?list?=?GetList();
????totalRecord?=?list.Count();
????list?=?OrderBy(list,?sortOrder?==?"asc").Skip(pageNumber?*?pageSize).Take(pageSize);
????_nContext.Configuration.LazyLoadingEnabled?=?true;
????_nContext.Configuration.ProxyCreationEnabled?=?true;
????return?list;
}
///?<summary>
///?排序
///?</summary>
///?<typeparam?name="T">类型</typeparam>
///?<param?name="source">原IQueryable</param>
///?<param?name="propertyName">排序属性名</param>
///?<param?name="isAsc">是否正序</param>
///?<returns>排序后的IQueryable<T/></returns>
private?static?IQueryable<T>?OrderBy(IQueryable<T>?source,?string?propertyName,?bool?isAsc)
{
????if?(source?==?null)?throw?new?ArgumentNullException("source",?"不能为空");
 
????if?(string.IsNullOrEmpty(propertyName))?return?source;
 
????//Expression:提供一种基类,表示表达式目录树节点的类派生自该基类。
????//创建一个?ParameterExpression?节点,该节点可用于标识表达式树中的参数或变量。
????var?parameter?=?Expression.Parameter(source.ElementType);
????//创建一个表示访问属性的?MemberExpression
????var?property?=?Expression.Property(parameter,?propertyName);
????if?(property?==?null)?throw?new?ArgumentNullException("propertyName",?"属性不存在");
 
????var?lambdaExpression?=?Expression.Lambda(property,?parameter);
????var?methodName?=?isAsc???"OrderBy"?:?"OrderByDescending";
????var?resultExpression?=?Expression.Call(typeof(Queryable),?methodName,?new[]?{?source.ElementType,?property.Type?},?source.Expression,?Expression.Quote(lambdaExpression));
????return?source.Provider.CreateQuery<T>(resultExpression);
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读