Bootstrap table 分页 In asp.net MVC
中文翻译文档:
http://blog.csdn.net/rickiyeat/article/details/56483577
版本说明:
Jquery v2.1.1
Bootstrap V3.3.7
bootstrap-table V1.11.1
一、视图页
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>测试</title>
<link href="/Content/bootstrap.min.css" rel="stylesheet">
<link href="/Content/bootstrap-table.min.css" rel="stylesheet">
<script src="/Scripts/modernizr-2.8.3.js"></script>
</head>
<body>
<div class="container">
<div class="row">
<div id="test_toolbar" class="btn-group">
<button id="btnEdit" type="button" class="btn btn-default">
<span class="fa fa-pencil-square-o" aria-hidden="true"></span>批量显示
</button>
<button id="btnDelete" type="button" class="btn btn-default">
<span class="fa fa-trash-o" aria-hidden="true"></span>批量删除
</button>
</div>
<table id="test_Table" class="table-striped table-hover" data-reorderable-columns="true"></table>
</div>
</div>
<script src="/Scripts/jquery/jquery-2.1.1.min.js"></script>
<script src="/Scripts/bootstrap.min.js"></script>
<script src="/Scripts/respond.min.js"></script>
<script src="/Scripts/bootstrap-table.min.js"></script>
<script src="/Scripts/bootstrap-table-zh-CN.js"></script>
<script src="~/Scripts/js/Activity/Comment.js"></script>
<script>
$(function () { //1.初始化Table
var oTable = new TableInit();
oTable.Init(); //2.初始化Button的点击事件
var oButtonInit = new ButtonInit();
oButtonInit.Init(); });
</script>
</body>
</html>
二、处理脚本
var TableInit = function () {
var oTableInit = new Object();
//初始化Table
oTableInit.Init = function () {
$('#test_Table').bootstrapTable({
url: "test",
method: 'get',
datatype: 'json',
contentType: "application/x-www-form-urlencoded",
toolbar: '#test_toolbar',
striped: false, //是否显示行间隔色
cache: false,
pagination: true,
sortable: false,
sortName: 'AddDate',
sortOrder: "asc",
queryParams: oTableInit.queryParams,
sidePagination: "server",
pageNumber: 1,
pageSize: 20,
pageList: [20, 30, 50, 100],
paginationPreText: '上一页',
paginationNextText: '下一页',
search: false,
strictSearch: false,
showColumns: false,
showRefresh: true,
minimumCountColumns: 2,
clickToSelect: true,//单击行选中
height: 600,
idField: "Id",
uniqueId: "Id", //唯一标识列
showToggle: false,
cardView: false,
detailView: false,
showHeader: true,
singleSelect: false,//是否单选
checkboxHeader: true,
columns: [
{ checkbox: true },
{
title: '序号', field: 'No', width: '50', align: 'center', formatter: function (value, row, index) {
return index + 1;
}
},
{ field: 'Id', title: 'Id', visible: false },
{
field: 'Operate',
title: '操作',
width: '100',
halign: 'center',
align: 'center',
formatter: function (value, row, index) {
var strHtml = "<a title='编辑' onclick='btnEdit(\"" + row.Id + "\")' href='javascript:void(0);'><i class='fa fa-pencil fa-fw'></i></a> ";
strHtml += "<a title='删除' onclick='btnDelete(\"" + row.Id + "\")' href='javascript:void(0);'><i class='fa fa-trash-o'></i></a>";
return strHtml;
}
},//或者
{
field: 'Operate', title: '操作', width: '80', halign: 'center', align: 'left',
events: operateEvents,
formatter: function (value, row, index) {
var strHtml = "<a class='upload' title='上传' href='javascript:void(0);'><i class='fa fa-upload fa-fw'></i></a> ";
strHtml += "<a class='remove' title='删除' href='javascript:void(0);'><i class='fa fa-trash-o fa-fw'></i></a>";
return strHtml;
}
}
]
});
};
//传递后台的参数
oTableInit.queryParams = function (params) {
//参数对应表格参数
/* 方式一 var temp1 = {
rows: this.pageSize,
page: this.pageNumber,
sort: this.sortName,
order: this.sortOrder
};*/
//序列化表单数据
var searchWhere = $("#activity_SearchForm").serializeFormToJson();
//方式二
var temp = {
limit: params.limit, //页面大小
offset: params.offset / params.limit, //页码
searchWhere: JSON.stringify(searchWhere)//JSON字符串参数
};
return temp;
};
oTableInit.responseHandler = function (res) {
if (res) {
return {
"rows": res.result,
"total": res.totalCount
};
} else {
return {
"rows": [],
"total": 0
};
}
};
return oTableInit;
};
var ButtonInit = function () {
var oInit = new Object();
oInit.Init = function () {
//清空查询条件
$("#btnClear").click(function () {
//...
});
//查询
$("#btnSearch").click(function () {
$("#test_Table").bootstrapTable('refresh');
});
//批量显示
$("#btnEdit").click(function () {
var selectRow = $("#test_Table").bootstrapTable('getSelections');
if (selectRow.length <= 0) {
$.modalAlert("请先选中要操作的数据行。", "warning");
}
var ids = new Array();
$.each(selectRow, function (i, row) {
ids[i] = row["Id"];
});
$.confirmForm({
//...
});
});
//批量删除
$("#btnDelete").click(function () {
var selectRow = $("#test_Table").bootstrapTable('getSelections');
if (selectRow.length <= 0) {
$.modalAlert("请先选中要操作的数据行。", "warning");
}
var ids = new Array();
$.each(selectRow, function (i, row) {
ids[i] = row["Id"];
});
$.deleteForm({
//...
});
});
};
return oInit;
};
//编辑
var btnEdit = function (key) {
//...
}
//删除
var btnDelete = function (key) {
//...
}
//行事件或采用以下方式
//操作监听事件
window.operateEvents = {
//删除数据行
'click .remove': function (e, value, row, index) {
$('#test_Table').bootstrapTable('remove', { field: 'Id', values: [row['Id']] });
},
//上传
'click .upload': function (e, value, row, index) {
//...
}
};
三、后端处理
/// <summary>
/// test
/// </summary>
/// <param name="limit">页数据大小</param>
/// <param name="offset">页码</param>
/// <param name="searchWhere"></param>
/// <returns></returns>
[HttpGet]
[AjaxOnly]
public JsonResult GetCommentGridJson(int limit, int offset, string searchWhere)
{
//总数
int rowCount = ;
IList<T> list = null;
return Json(new { total = rowCount, rows = list });
} //返回JSON必须包含total,rows
Bootstrap table 分页 In asp.net MVC的更多相关文章
- [转]Bootstrap table 分页 In asp.net MVC
本文转自:https://www.cnblogs.com/lenovo_tiger_love/p/7474403.html 中文翻译文档: http://blog.csdn.net/rickiyeat ...
- Bootstrap table分页问题汇总
首先非常感谢作者针对bootstrap table分页问题进行详细的整理,并分享给了大家,希望通过这篇文章可以帮助大家解决Bootstrap table分页的各种问题,谢谢大家的阅读. 问题1 :服务 ...
- bootstrap table分页(前后端两种方式实现)
bootstrap table分页的两种方式: 前端分页:一次性从数据库查询所有的数据,在前端进行分页(数据量小的时候或者逻辑处理不复杂的话可以使用前端分页) 服务器分页:每次只查询当前页面加载所需要 ...
- MvcPager 概述 MvcPager 分页示例 — 标准Ajax分页 对SEO进行优化的ajax分页 (支持asp.net mvc)
该示例演示如何使用MvcPager最基本的Ajax分页模式. 使用AjaxHelper的Pager扩展方法来实现Ajax分页,使用Ajax分页模式时,必须至少指定MvcAjaxOptions的Upda ...
- LayUI分页基于ASP.NET MVC
---恢复内容开始--- 今天写了挺久的分页,百度了很多都没有很好的.Net实例,今天我来更新一期关于layuiTable分页 首先你得理解layui的官方文档的Table分页部分,我在这里附上地址 ...
- bootstrap table 分页序号递增问题 (转)
原文地址:https://segmentfault.com/q/1010000011040346 如题,怎么在bootstrap table中显示序号,序号递增,并且分页有效,等于是每页10条,第2页 ...
- bootstrap table分页,重新数据查询时页码为当前页问题
问题描述: 使用bootstrap table时遇到一个小问题,第一次查询数据未5页,翻页到第5页后,选中条件再次查询数据时,传到后端页码仍旧为5,而此时数据量小于5页,表格显示为未查询到数据. 处理 ...
- bootstrap table分页limit计算pageIndex和pageSize
由于bootstrap table的js无法直接获取pageSize和pageIndex的值,只能通过limit进行计算.
- bootstrap table 分页后,重新搜索的问题
前提: 自定义搜索且有分页功能,比如搜索产品名的功能. 现象:当搜索充气娃娃的时候返回100条记录,翻到第五页. 这时候搜索按摩棒,数据有200条,结果应该是第一页的记录,但是实际显示的还是第五页的 ...
随机推荐
- Android Studio下HierarchyViewer的使用
什么是HierarchyViewer Hierarchy Viewer是随AndroidSDK发布的工具,位置在tools文件夹下,名为hierarchyviewer.bat.它是Android自带的 ...
- Js中处理日期加减天数
Js的处理日期还是很方便的. 一. 格式化日期为2017-07-04的格式 function formatTime(date) { var year = date.getFullYear(); var ...
- JS 事件循环机制 - 任务队列、web API、JS主线程的相互协同
一.JS单线程.异步.同步概念 从上一篇说明vue nextTick的文章中,多次出现“事件循环”这个名词,简单说明了事件循环的步骤,以便理解nextTick的运行时机,这篇文章将更为详细的分析下事件 ...
- 你可能没听过的11个Python库
目前,网上已有成千上万个Python包,但几乎没有人能够全部知道它们.单单 PyPi上就有超过47000个包列表. 现在,越来越多的数据科学家开始使用Python,虽然他们从 pandas, scik ...
- centos7修改网卡名称为eth0-技术流ken
前言 在配置集群的时候,需要保持网卡名称一致,所以我们需要修改centos7中的网卡名称为eth0. 检查网卡 检查网卡,现在网卡名称是ens33 [root@localhost ~]# ip a : ...
- NLP入门(三)词形还原(Lemmatization)
词形还原(Lemmatization)是文本预处理中的重要部分,与词干提取(stemming)很相似. 简单说来,词形还原就是去掉单词的词缀,提取单词的主干部分,通常提取后的单词会是字典中的单 ...
- Tomcat 8005/8009/8080/8443端口的作用
--关闭tomcat进程所用.当执行shutdown.sh关闭tomcat时就是连接8005端口执行“SHUTDOWN”命令--由此,我们直接telnet8005端口执行“SHUTDOWN”(要大写, ...
- Tree View控件(添加,移除,设置图标)
添加 父节点,并为父节点添加子节点 private void button1_Click(object sender, EventArgs e) { TreeNode tn1 = treeView1. ...
- vuex 、store、state (转载)
vuex 文档 https://vuex.vuejs.org/zh/guide/state.html
- 【WebSocket No.3】使用WebSocket协议来做服务器
写在开始 上面一篇写了一篇使用WebSocket做客户端,然后服务端是socke代码实现的.传送门:webSocket和Socket实现聊天群发 本来我是打算写到一章上的,毕竟实现的都是一样的功能,后 ...