$(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, //是否显示表格搜索,此搜索是客户端搜索,不会进服务端,所以,个人感觉意义不大 strictSearch: true, showColumns: true, //是否显示所有的列 showRefresh: true, //是否显示刷新按钮 minimumCountColumns: 2, //最少允许的列数 clickToSelect: true, //是否启用点击选中行 height: 500, //行高,如果没有设置height属性,表格自动根据记录条数觉得表格高度 uniqueId: "Id", //每一行的唯一标识,一般为主键列 showToggle: true, //是否显示详细视图和列表视图的切换按钮 cardView: false, //是否显示详细视图 detailView: false, //是否显示父子表 columns: [ { radio: true }, { field: 'Title', title: '任务名称', sortable: true }, { field: 'Description', title: '任务描述' }, { field: 'AssignedPersonName', title: '任务分配' }, { field: 'State', title: '任务状态', formatter: showState }, { field: 'CreationTime', title: '创建日期', formatter: showDate }, { field: 'operate', title: '操作', align: 'center', valign: 'middle', clickToSelect: false, formatter: operateFormatter, events: operateEvents } ] }); };
这段JS中bootstrap table初始化配置的参数说明已经在代码中进行了注释。
下面对几个重要的参数进行讲解:
3.3.1. queryParams查询参数
初始化的时候我们指定了查询参数为:
queryParams: oTableInit.queryParams, //传递参数(*)
其中queryParams函数定义如下:
//指定bootstrap-table查询参数 oTableInit.queryParams = function(params) { var temp = { //这里的键的名字和控制器的变量名必须一直,这边改动,控制器也需要改成一样的 limit: params.limit, //页面大小 offset: params.offset, //页码 sortfiled: params.sort, //排序字段 sortway: params.order, //升序降序 search: $("#txt-filter").val(), //自定义传参-任务名称 status: $("#txt-search-status").val() //自定义传参-任务状态 }; return temp; };
和控制器中的Action的函数命名进行比较public JsonResult GetAllTasks(int limit, int offset, string sortfiled, string sortway, string search, string status),其中参数命名的大小写以及顺序与js中定义的查询参数保持一致,这也是必须要注意的一点。
3.3.2. 数据绑定
数据绑定包括以下三个部分:
url:就是用来指定请求后台的URL;
uniqueid:用来绑定每一行的唯一标识列,一般为主键列
columns:用来绑定每一列要显示的数据。
针对columns参数,其中field必须与你请求返回的json数据的key大小写保持一致;
title就是显示的列名;
align指定列的水平对其方式;
valign指定列的垂直对齐方式;
formatter用来指定列如何进行格式化输出,如操作列中指定formatter: operateFormatter,用来显示统一格式的操作组;