一、效果展示

二、使用方法

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. [Python] MySQLdb(即 MySQL-python 包)在 OS X 中安装指南

    本文参考:http://www.cnblogs.com/ifantastic/archive/2013/04/13/3017677.html 安装环境:OS X 操作系统,Python 2.7.10 ...

  2. AspNetPager分页控件

    AspNetPager分页控件解决了分页中的很多问题,直接采用该控件进行分页处理,会将繁琐的分页工作变得简单化,下面是我如何使用AspNetPager控件进行分页处理的详细代码:1.首先到www.we ...

  3. HTML中图片添加

    图片添加后保存的是添加路径 例: <div class="form-group"> <label class="col-sm-3 control-lab ...

  4. gulp配置文件备份

    /** * Created by leyi on 2016/8/25 0025. */ /*********************package.json依赖模块****************** ...

  5. DELPHI 读取csv 格式文本文件

    procedure TForm1.btn1Click(Sender: TObject); var sFile,sLine: TStrings; r,c:Integer; begin sFile := ...

  6. AIDL和生成的java文件要分开存放,否则生成can't find symbol class

    Android 5.0之后需要AIDL和生成的java文件要分开存放,否则生成can't fin symbol class.但是4.3没有这个限制.被这个弄了一天,跟老大讨论了一下才豁然开朗.

  7. kendoWindow 与 bootbox 冲突,显示层次问题

    今天在使用bootbox做弹出提示遇到些麻烦,由于使用kendoWindow先弹出数据输入窗口, 然后在检核输入时,又用bootbox做为提示窗口,这下悲剧了,后弹出的bootbox窗口总是在kend ...

  8. 经典的Hello World VFP前端调后端C# Webservice

    1.按我设想的三层架构中,VFP是完全可以做为前端UI的,我们可以划分如下三层结构: 图片:三层架构图.jpg[设为封面] [删除] 其实大家看图,都明白大致意思,但是要明白各层数据是怎么流动的,却要 ...

  9. SQL查询所有表,所有列

    1.查询实例中所有数据库 select name,database_id from sys.databases 2.查询数据库中所有表select TABLE_TYPE,TABLE_NAME from ...

  10. c++ 二维数组传递

    c++ 二维数组传递 我们在传递二维数组时,对于新手来说,可能会存在某些问题,下面讲解几种传递方法 在讲解如何传递二维数组时,先看看如何动态new 二维数组 // 二维数组动态申请 int row , ...