一、效果展示

二、使用方法

1)、相关css和js的引用

<link href="~/Themes/Bootstrap/css/bootstrap.css" rel="stylesheet" />
<link href="~/Themes/Bootstrap/css/bootstrap-table.css" rel="stylesheet" />
<!---------------------------js引用------------------------------------------->
<script src="~/Themes/Bootstrap/js/jquery.min.js"></script>
<script src="~/Themes/Bootstrap/js/bootstrap.js"></script>
<script src="~/Themes/Bootstrap/js/bootstrap-table.js"></script>
<script src="~/Themes/Bootstrap/js/bootstrap-table-zh-CN.js"></script>
<script src="~/Themes/layer/layer.js"></script>

2)、页面html

        <button type="button" id="btnAdd" class="btn btn-primary">添加新纪录</button>
<div class="pull-right search" style="width:260px;">
<input class="form-control" type="text" id="txtName" placeholder="请输入姓名" style="float:left;width:150px;">
<button type="button" id="btnSearch" class="btn btn-primary">查询</button>
</div>
<table id="myTable"></table>

3)、初始化表格js和相应的增、删、改、查js事件

        <script type="text/javascript">
var $table = $("#myTable");
var TableInit = function () {
var oTable = new Object();
oTable.QueryUrl = '@Url.Content("~/Home/GetList")' + '?rnd=' + +Math.random();
oTable.Init = function () {
$table.bootstrapTable({
method: 'post',//数据请求方式
url: oTable.QueryUrl,//请求数据的地址
height: $(window).height() - 100,
striped: true,
pagination: true,
pageNumber: 1,
pageSize: 10,
pageList: [5, 10, 15],
uniqueId: "ID",
sidePagination: "server", //服务端请求
queryParams: oTable.queryParams,
queryParamsType: "",
               sortOrder: "desc",//默认排序方式,降序排列
columns: [{
field: 'ID',
title: 'ID',
width: 100,
align: 'center',
valign: 'middle',
sortable: true,
                 sortname:'ID',//排序字段名称
formatter: idFormatter
}, {
field: 'Name',
title: '姓名',
width: 100,
align: 'center',
valign: 'middle',
formatter: nameFormatter
}, {
field: 'operate',
title: '操作',
width: 100,
align: 'center',
valign: 'middle',
formatter: operateFormatter,
events: operateEvents
}],
onLoadSuccess: function () {
},
onLoadError: function () {
}
});
}
oTable.queryParams = function (params) {
var temp = {
pageSize: params.pageSize,
pageIndex: params.pageNumber,
name: $("#txtName").val(),
sortOrder: params.sortOrder,
               sortName:params.sortName
};
return temp;
}
function idFormatter(value, row, index) {
return row.ID;
}
function nameFormatter(value, row, index) {
return row.Name;
}
function operateFormatter(value, row, index) {
return '<a class="edit" style="cursor:pointer;" title="修改">修改</a> ' + '<a class="delete" style="cursor:pointer;" title="删除">删除</a>';
}
window.operateEvents = {
'click .edit': function (e, value, row, index) {
//修改操作,将姓名字段改为“小宝,英文名:aspen”
$.ajax({
url: '@Url.Content("~/Home/UpdateRow")',
data: { id: row.ID },
success: function (result) {
if (result.state) {
layer.msg('修改成功', { tiem: 500, icon: 1 });
$table.bootstrapTable('refresh');
}
}
});
$table.bootstrapTable('refresh');
},
'click .delete': function (e, value, row, index) {
//删除操作
layer.confirm('您确定要删除该记录吗?', {
btn: ['确定', '取消'] //按钮
}, function () {
$.ajax({
url: '@Url.Content("~/Home/DeleteRow")',
data: { id: row.ID },
success: function (result) {
if (result.state) {
layer.msg('删除成功', { tiem: 500, icon: 1 });
$table.bootstrapTable('refresh');
}
}
}); }, function () { });
}
}
return oTable;
} //初始化表格
$(function () {
var myTable = new TableInit();
myTable.Init();
});
//查询
$("#btnSearch").click(function () {
$table.bootstrapTable('destroy');
var myTable = new TableInit();
myTable.Init();
});
//添加
$("#btnAdd").click(function () {
$.ajax({
url: '@Url.Content("~/Home/AddRow")',
success: function (result) {
if (result.state) {
layer.msg('添加成功', { tiem: 500, icon: 1 });
$table.bootstrapTable('refresh');
}
}
});
});
</script>

4)、控制器方法

     public class HomeController : Controller
{
static List<Person> personList = new List<Person>();
static HomeController()
{
for (int i = ; i <= ; i++)
{
Person person = new Person();
person.ID = i;
person.Name = "小宝" + i.ToString();
personList.Add(person);
}
}
public ActionResult List()
{
return View();
}
public ActionResult GetList(string name,string sortOrder="desc",string sortName = "ID",int pageIndex = , int pageSize = )
{
var tempPersonList = personList;
if (sortOrder == "desc"&&sortName=="ID")
{
tempPersonList = tempPersonList.OrderByDescending(p => p.ID).ToList();
}
else
{
tempPersonList = tempPersonList.OrderBy(p => p.ID).ToList();
}
if (!string.IsNullOrWhiteSpace(name))
{
tempPersonList = tempPersonList.Where(p => p.Name.Contains(name)).ToList();
}
var currentPersonList = tempPersonList
.Skip((pageIndex - ) * pageSize)
.Take(pageSize); var total = tempPersonList.Count();
var rows = currentPersonList.Select(p => new { ID=p.ID,Name=p.Name});
return Json(new { total=total,rows=rows, state = true, msg = "加载成功" }, JsonRequestBehavior.AllowGet);
}
public ActionResult UpdateRow(int id)
{
Person person = personList.Find(p => p.ID == id);
person.Name = person.Name + ",英文名:aspen";
int index= personList.FindIndex(p => p.ID == id);
personList.Remove(person);
personList.Insert(index, person);
return Json(new { state = true, msg = "修改成功" }, JsonRequestBehavior.AllowGet);
}
public ActionResult DeleteRow(int id)
{
Person person = personList.Find(p => p.ID == id);
personList.Remove(person);
return Json(new { state = true, msg = "删除成功" }, JsonRequestBehavior.AllowGet);
}
public ActionResult AddRow()
{
int maxIndex= personList.Max(p => p.ID);
Person person = new Person();
person.ID = maxIndex + ;
person.Name = "小宝" + person.ID.ToString();
personList.Add(person);
return Json(new { state = true, msg = "添加成功" }, JsonRequestBehavior.AllowGet);
}
}
class Person
{
public int ID { get; set; }
public string Name { get; set; }
}

项目源码下载:

http://files.cnblogs.com/files/weishuanbao/BootstrapTable.rar

参考资料:

1.Bootstrap Table API:

http://bootstrap-table.wenzhixin.net.cn/zh-cn/documentation/

2.网友分享:

http://www.imooc.com/article/8917

.Net MVC+bootstrap Table学习的更多相关文章

  1. bootstrap table 学习记录

    效果: html代码: <!-- 工具容器 --> <div id="toolbar" class="btn-group"> <b ...

  2. Bootstrap Table使用方法详解

    http://www.jb51.net/article/89573.htm bootstrap-table使用总结 bootstrap-table是在bootstrap-table的基础上写出来的,专 ...

  3. 在ASP.NET MVC中使用 Bootstrap table插件

    Bootstrap table: http://bootstrap-table.wenzhixin.net.cn/zh-cn/getting-started/ 1. 控制器代码: using Syst ...

  4. MVC系列——MVC源码学习:打造自己的MVC框架(二:附源码)

    前言:上篇介绍了下 MVC5 的核心原理,整篇文章比较偏理论,所以相对比较枯燥.今天就来根据上篇的理论一步一步进行实践,通过自己写的一个简易MVC框架逐步理解,相信通过这一篇的实践,你会对MVC有一个 ...

  5. ABP+AdminLTE+Bootstrap Table权限管理系统第五节--WBEAPI及SwaggerUI

    一,Web API ABP的动态WebApi实现了直接对服务层的调用(其实病没有跨过ApiController,只是将ApiController公共化,对于这一点的处理类似于MVC,对服务端的 调用没 ...

  6. ABP module-zero +AdminLTE+Bootstrap Table+jQuery权限管理系统第十二节--小结,Bootstrap Table之角色管理

    返回总目录:ABP+AdminLTE+Bootstrap Table权限管理系统一期 很多人说ABP不适合高并发大型,有一定的道理,但是我觉得还是可以的,就看架构师的能力了,哈哈,我之前公司就是ABP ...

  7. ABP module-zero +AdminLTE+Bootstrap Table+jQuery权限管理系统第十六节--SignalR与ABP框架Abp.Web.SignalR及扩展

    SignalR简介 SignalR是什么? ASP.NET SignalR 是为 ASP.NET 开发人员提供的一个库,可以简化开发人员将实时 Web 功能添加到应用程序的过程.实时 Web 功能是指 ...

  8. ABP+AdminLTE+Bootstrap Table权限管理系统第三节--abp分层体系,实体相关及ABP模块系统

    返回总目录:ABP+AdminLTE+Bootstrap Table权限管理系统一期 ABP模块系统 说了这么久,还没有详细说到abp框架,abp其实基于DDD(领域驱动设计)原则的细看分层如下: 再 ...

  9. 【转载】BootStrap表格组件bootstrap table详解

    (转载,来源“脚本之家”,作者不详) 一.Bootstrap Table的引入 关于Bootstrap Table的引入,一般来说还是两种方法: 1.直接下载源码,添加到项目里面来.由于Bootstr ...

随机推荐

  1. ubuntu 'Unable to correct problems, you have held broken packages' 错误

    在用apt 安装软件时,有时会用国内的源以加快下载速度. 但是在使用ubuntu 14.04的过程中,这一过程可能会导致错误“Unable to correct problems, you have ...

  2. ios10 no route to host

    IdTCPClient1 ios10 no route to host IOS 9 正常 IOS10 出错,参考下面的设置解决问题 http://www.sh-huhe.com/solution/14 ...

  3. delphi Style TBitmapLink

    New Bitmap Links Editor http://docwiki.appmethod.com/appmethod/1.17/topics/en/What's_New A new edito ...

  4. springboot一个service内组件的加载顺序

    先加载自身构造器,所以在构造器中初始化时若使用需要注入的(即@Autowired注解的)组件相关的方法,则会报null: 然后加载注入的组件即@Autowired 最后加载@PostConstruct ...

  5. SRM 146 DIV1 600

    Problem Statement      Masterbrain is a two player board game in which one player decides on a secre ...

  6. 56992 vuser_init.c(12): Error: Socket descriptor not found.

    Loadrunner 运行场景时提示" vuser_init.c(12): Error: Socket descriptor not found.  Hint: the problem mi ...

  7. 邮箱验证 各种邮箱的smtp

    常见邮箱的SMTP设置 QQ 邮箱举例:(地址test@qq.com)(账号test)(密码***)(SMTP服务smtp.qq.com)(端口25)(注意:请手动开通SMTP功能,通过网页登录qq邮 ...

  8. JCCLIENT IP GET UDP

    ##通道##110.52.233.5:18427## ##通道##112.95.251.214:18427## ##通道##119.29.192.206:18427## ##通道##123.207.1 ...

  9. centos网卡配置和防火墙停止和启动

    Linux 设置网卡配置ip vi /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 ONBOOT=yes BOOTPROTO=static ...

  10. html5的新标签

    header,section,footer,aside,nav,main,article,figure 在使用的时候,需要先把这个元素变为块级元素,确保在老的浏览器里面可以使用.因为在浏览器检测到未知 ...