中文翻译文档:
http://blog.****.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