.Net MVC+bootstrap Table学习
一、效果展示
二、使用方法
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学习的更多相关文章
- bootstrap table 学习记录
效果: html代码: <!-- 工具容器 --> <div id="toolbar" class="btn-group"> <b ...
- Bootstrap Table使用方法详解
http://www.jb51.net/article/89573.htm bootstrap-table使用总结 bootstrap-table是在bootstrap-table的基础上写出来的,专 ...
- 在ASP.NET MVC中使用 Bootstrap table插件
Bootstrap table: http://bootstrap-table.wenzhixin.net.cn/zh-cn/getting-started/ 1. 控制器代码: using Syst ...
- MVC系列——MVC源码学习:打造自己的MVC框架(二:附源码)
前言:上篇介绍了下 MVC5 的核心原理,整篇文章比较偏理论,所以相对比较枯燥.今天就来根据上篇的理论一步一步进行实践,通过自己写的一个简易MVC框架逐步理解,相信通过这一篇的实践,你会对MVC有一个 ...
- ABP+AdminLTE+Bootstrap Table权限管理系统第五节--WBEAPI及SwaggerUI
一,Web API ABP的动态WebApi实现了直接对服务层的调用(其实病没有跨过ApiController,只是将ApiController公共化,对于这一点的处理类似于MVC,对服务端的 调用没 ...
- ABP module-zero +AdminLTE+Bootstrap Table+jQuery权限管理系统第十二节--小结,Bootstrap Table之角色管理
返回总目录:ABP+AdminLTE+Bootstrap Table权限管理系统一期 很多人说ABP不适合高并发大型,有一定的道理,但是我觉得还是可以的,就看架构师的能力了,哈哈,我之前公司就是ABP ...
- ABP module-zero +AdminLTE+Bootstrap Table+jQuery权限管理系统第十六节--SignalR与ABP框架Abp.Web.SignalR及扩展
SignalR简介 SignalR是什么? ASP.NET SignalR 是为 ASP.NET 开发人员提供的一个库,可以简化开发人员将实时 Web 功能添加到应用程序的过程.实时 Web 功能是指 ...
- ABP+AdminLTE+Bootstrap Table权限管理系统第三节--abp分层体系,实体相关及ABP模块系统
返回总目录:ABP+AdminLTE+Bootstrap Table权限管理系统一期 ABP模块系统 说了这么久,还没有详细说到abp框架,abp其实基于DDD(领域驱动设计)原则的细看分层如下: 再 ...
- 【转载】BootStrap表格组件bootstrap table详解
(转载,来源“脚本之家”,作者不详) 一.Bootstrap Table的引入 关于Bootstrap Table的引入,一般来说还是两种方法: 1.直接下载源码,添加到项目里面来.由于Bootstr ...
随机推荐
- java位运算符介绍
位操作是程序设计中对位模式按位或二进制数的一元和二元操作. 在许多古老的微处理器上, 位运算比加减运算略快, 通常位运算比乘除法运算要快很多. 在现代架构中, 情况并非如此:位运算的运算速度通常与加法 ...
- PAMI 2010 Context-aware saliency detection
This is a highly-cited paper. The context aware saliency proposed based on four principles, which ca ...
- Elasticsearch常用配置及性能参数
cluster.name: estest 集群名称node.name: “testanya” 节点名称 node.master: false 是否主节点node.data: true 是否 ...
- 深入浅出讲解:php的socket通信
对TCP/IP.UDP.Socket编程这些词你不会很陌生吧?随着网络技术的发展,这些词充斥着我们的耳朵.那么我想问:1. 什么是TCP/IP.UDP?2. Socke ...
- JS中的get & set
之前在看<Javascript 高级程序设计>一书中遇到过getter和setter,但因当时难于理解,且觉得用处较小,没有细看,今日突然遇到了一种使用get&set读写对象属性的 ...
- Backbone入门讲解
Backbone是一个实现了web前端mvc模式的js框架. 一种解决问题的通用方法,我们叫做模式. 设计模式:工厂模式,适配器模式,观察者模式等,推荐js设计模式这本书.设计模式是一种思想. 框架模 ...
- document.createElement()方法
document.createElement()是在对象中创建一个对象,主要和appendChild() 方法或者insertBefore() 方法联合使用. appendChild() 方法在节点的 ...
- 因为此版本的应用程序不支持其项目类型(.csproj)”之解
有的时候vs无缘无故的出现如下错误:"因为此版本的应用程序不支持其项目类型(.csproj),若要打开它,请使用支持此类型项目的版本" 解决办法:如果是这个提示,可能是由于你安装m ...
- js中原型继承的三种方式
- 个人关于React的一些理解
##React背景 React是当前前端最火的框架,它的理念思想及构建方法比AngularJS更适合做webApp. 它是由facebook团队研发并开源到社区,所以它有很强大的技术背景,而且它的架构 ...