• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >ASP.NET > ABP入门系列应用BootstrapTable表格插件

ABP入门系列应用BootstrapTable表格插件

作者:圣杰』 字体:[增加 减小] 来源:互联网 时间:2017-05-11

圣杰』通过本文主要向大家介绍了abp痉挛系列,abp绝顶系列,abp系列,abp绝顶系列封面,abp绝顶系列番号等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)”的简称。

ASP.NET Boilerplate是一个用最佳实践和流行技术开发现代WEB应用程序的新起点,它旨在成为一个通用的WEB应用程序框架和项目模板。

ABP的官方网站 : http://www.aspnetboilerplate.com

ABP在Github上的开源项目:https://github.com/aspnetboilerplate

1. 引言

之前的文章ABP入门系列之分页功能的实现讲解了如何进行分页展示,但其分页展示仅适用于前台web分页,在后台管理系统中并不适用。后台管理系统中的数据展示一般都是使用一些表格插件来完成的。这一节我们就使用BootstrapTable进行举例说明。

2. BootstrapTable

基于 Bootstrap 的 jQuery 表格插件,通过简单的设置,就可以拥有强大的单选、多选、排序、分页,以及编辑、导出、过滤(扩展)等等的功能。

Bootstrap table是一个开源的轻量级功能非常丰富的前端表格插件。从命名来看就知道该表格样式由Bootstrap接手了,我们就不必纠结于样式的调整了。想对其有详细了解,可参考官方文档。

废话不多说,下面我们就直接上手演练。

3. 实操演练

因为使用BootstrapTable进行分页,主要的难点在插件的配置上,所以这一次我们直接对主要代码进行讲解,源码请自行前往Github上查看。

3.1. 添加BackendTasksController控制器

控制器中主要定义了列表、创建、编辑相关Action。其中最重要的方法是进行数据绑定的Aciton GetAllTasks,代码如下:

[DontWrapResult] 
public JsonResult GetAllTasks(int limit, int offset, string sortfiled, string sortway, string search, string status) {
 var sort = !string.IsNullOrEmpty(sortfiled) ? string.Format("{0} {1}", sortfiled, sortway) : "";
 TaskState currentState;
 if (!string.IsNullOrEmpty(status)) Enum.TryParse(status, true, out currentState);
 var filter = new GetTasksInput {
 SkipCount = offset,
 MaxResultCount = limit,
 Sorting = sort,
 Filter = search
 };
 if (!string.IsNullOrEmpty(status)) if (Enum.TryParse(status, true, out currentState)) filter.State = currentState;
 var pagedTasks = _taskAppService.GetPagedTasks(filter);
 return Json(new {
 total = pagedTasks.TotalCount,
 rows = pagedTasks.Items
 },
 JsonRequestBehavior.AllowGet);
}
</div>

下面来一一讲解下参数:

limit:分页参数,指定每页最多显示多少行;

offset:分页参数,指定偏移量;

sortField:排序参数,排序字段;

sortWay:排序参数,排序方式(升序or降序);

search:过滤参数,指定过滤的任务名称;

status:过滤参数,指定过滤的任务状态

这里面要注意的是参数的命名和顺序必须和前端传参保持一致

细心的你可能发现Action使用了[DontWrapResult]特性进行修饰,这样返回的json结果就不会被Abp提供的AbpJsonResult包裹,了解AbpJsonResult可参考ABP入门系列之Json格式化。

3.2. 添加List.cshtml进行列表展示

List.cshtml中主要的代码为:

@using Abp.Web.Mvc.Extensions
@{
 ViewBag.Title = L("BackendTaskList");
 ViewBag.ActiveMenu = "BackendTaskList"; //Matches with the menu name in SimpleTaskAppNavigationProvider to highlight the menu item
}
<!-- 加载bootstrap-tablel的样式 -->
<link rel="stylesheet" href="http://cdnjs.cloudflare.com/ajax/libs/bootstrap-table/1.11.0/bootstrap-table.min.css" rel="external nofollow" >
@section scripts{
 @Html.IncludeScript("~/Views/backendtasks/list.js");
 <!-- 加载bootstrap-tablel的script脚本 -->
 <script src="http://cdnjs.cloudflare.com/ajax/libs/bootstrap-table/1.11.0/bootstrap-table.min.js"></script>
 <!-- Latest compiled and minified Locales -->
 <script src="http://cdnjs.cloudflare.com/ajax/libs/bootstrap-table/1.11.0/locale/bootstrap-table-zh-CN.min.js"></script>
}
<div class="row">
 <div class="panel-body">
 <!-- 过滤框 -->
 <div class="panel panel-default">
 <div class="panel-heading">查询条件</div>
 <div class="panel-body">
 <form id="formSearch" class="form-horizontal">
 <div class="form-group" style="margin-top: 15px">
 <label class="control-label col-sm-1" for="txt-filter">任务名称</label>
 <div class="col-sm-3">
 <input type="text" class="form-control" id="txt-filter">
 </div>
 <label class="control-label col-sm-1" for="txt-search-status">状态</label>
 <div class="col-sm-3">
 @Html.DropDownList("TaskStateDropdownList", null, new {id = "txt-search-status", @class = "form-control "})
 </div>
 <div class="col-sm-4" style="text-align: left;">
 <button type="button" style="margin-left: 50px" id="btn-query" class="btn btn-primary">查询</button>
 </div>
 </div>
 </form>
 </div>
 </div>
 </div>
 <!-- bootstrap-tablel指定的工具栏 -->
 <div id="toolbar" class="btn-group">
 <button id="btn-add" type="button" class="btn btn-primary">
 <span class="glyphicon glyphicon-plus" aria-hidden="true"></span>新增
 </button>
 <button id="btn-edit" type="button" class="btn btn-success">
 <span class="glyphicon glyphicon-pencil" aria-hidden="true"></span>修改
 </button>
 <button id="btn-delete" type="button" class="btn btn-danger">
 <span class="glyphicon glyphicon-remove" aria-hidden="true"></span>删除
 </button>
 </div>
 <!--bootstrap-table表体-->
 <table id="tb-tasks"></table>
</div>
<!--通过初始加载页面的时候提前将创建任务模态框加载进来-->
@Html.Partial("_CreateTask")
<!--编辑任务模态框通过ajax动态填充到此div中-->
<div id="edit">
</div>
</div>

由于是demo性质,我直接使用的CDN来加载bootstrap table相关的css,js。

其中首先定义了过滤框,然后定义了bootstrap table专用的工具栏,其会在后续bootstrap table初始化指定。

接着使用<table id="tb-tasks"></table>来定义bootstrap-table表体。

3.3. 添加list.js初始化bootstrap table

初始化就是为bootstrap table指定数据来源进行数据绑定、列名定义、排序字段、分页,事件绑定等。

我们新建一个list.js来进行初始化:

$(function() {
 //1.初始化Table
 var oTable = new TableInit();
 oTable.Init();
 //2.初始化Button的点击事件
 var oButtonInit = new ButtonInit();
 oButtonInit.Init();
});
var taskService = abp.services.app.task;
var $table = $('#tb-tasks');
var TableInit = function() {
 var oTableInit = new Object();
 //初始化Table
 oTableInit.Init = function() {
 $table.bootstrapTable({
 url: '/BackendTasks/GetAllTasks', //请求后台的URL(*)
 method: 'get', //请求方式(*)
 toolbar: '#toolbar', //工具按钮用哪个容器
 striped: true, //是否显示行间隔色
 cache: false, //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)
 pagination: true, //是否显示分页(*)
 sortable: true, //是否启用排序
 sortOrder: "asc", //排序方式
 queryParams: oTableInit.queryParams, //传递参数(*)
 sidePagination: "server", //分页方式:client客户端分页,server服务端分页(*)
 pageNumber: 1, //初始化加载第一页,默认第一页
 pageSize: 5, //每页的记录行数(*)
 pageList: [10, 25, 50, 100], //可供选择的每页的行数(*)
 search: false, //是否显示表格搜索,此搜索是客户端搜索,不会进服务端,所以,个人感觉意义不大
 s



 
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • ABP入门系列之Json格式化
  • ABP入门系列之分页功能的实现
  • ABP入门系列应用BootstrapTable表格插件

相关文章

  • 2017-05-11IIS 浏览aspx页面出现无法显示XML页的解决方法分享
  • 2017-05-11VB.net 查询获取数据库数据信息
  • 2017-05-11.Net 2.0 原汁原味读取注册表
  • 2017-05-11ASP .NET 可编辑输入自动匹配的下拉框
  • 2018-08-20ABP(现代ASP.NET样板开发框架)系列之二、ABP入门教程详解
  • 2017-05-11如何使用ASP.NET制作简单的验证码
  • 2017-05-11在ASP.NET2.0中通过Gmail发送邮件的代码
  • 2017-05-11Visual Studio 2015全英界面切换成中文界面
  • 2017-05-11ASP.NET数据绑定之GridView控件
  • 2017-05-11收集学习asp.net比较完整的面向对象开发流程

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 解析在.net中使用XSLT转换xml文档的示例详解
    • asp.net用url重写URLReWriter实现任意二级域名第1/2页
    • 在ASP.Net中实现flv视频转换的代码
    • ASP.NET证控件的使用方法
    • ASP.NET通过byte正确安全的判断上传文件格式
    • Asp.net开发常用的51个非常实用的代码
    • asp.net B2B网站对接支付宝接口
    • ASP.NET 2.0服务器控件开发之复杂属性
    • 详解ASP.NET Core 中间件之压缩、缓存
    • .NET下为百度文本编辑器UEditor增加图片删除功能示例

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有