Bootstrap 之 bootstrap-table常用配置、formatter传多个参数 / 行数据、增删改查操作

照例,附上地址:

$("#tableId").bootstrapTable({
    url: "data1.json",
    pagination: true,
    search: true,
    columns: [
        {
            field: "id",
            title: "Item ID",
        },
        {
            field: "name",
            title: "Item Name",
        },
        {
            field: "price",
            title: "Item Price",
        },
        {
            title: "操作",
            align: "center",
            width: 90,
            formatter: function (value, row, index) {
                var actions = []
                actions.push(
                    '<a href="###" οnclick="delTable(\'' + index + "', '" + row.id + '\')">删除</a>",
                    '<a href="###" οnclick="edit(\'' + row.id + '\')">编辑</a>",
                    '<a href="###" οnclick="detail(\'' + encodeURI(JSON.stringify(row)) + '\')">详情</a>",
                    `<a href="###" οnclick="detail('${encodeURI(JSON.stringify(item))}')">获取行</a>`
                )
                return actions.join("")
            },
        },
    ],
})
function delTable(index, id) {
	 var row = $("#tableId").bootstrapTable('getData')[index];
     $('#tableId').bootstrapTable('remove',{field: "name", values: [row.name]});
}
function edit(id) {
	// ...
}
function detail(row) {
	let currentRow = JSON.parse(decodeURI(row))
	// ...
}

配置

var defaults = {
    id: "tableId",
    type: 0, // 0 代表bootstrapTable 1代表bootstrapTreeTable
    method: 'post',
    height: undefined,
    sidePagination: "server",
    sortName: undefined,
    sortOrder: "asc",
    pagination: true,
    paginationLoop: false,
    pageSize: 10,
    pageNumber: 1,
    pageList: [10, 25, 50],
    toolbar: "toolbar",
    loadingFontSize: 13,
    striped: false,
    escape: false,
    firstLoad: true,
    showFooter: false,
    search: false,
    showSearch: true,
    showPageGo: false,
    showRefresh: true,
    showColumns: true,
    showToggle: true,
    showExport: false,
    showPrint: false,
    exportDataType: 'all',
    exportTypes: ['csv', 'txt', 'doc', 'excel'],
    clickToSelect: false,
    singleSelect: false,
    mobileResponsive: true,
    maintainSelected: false,
    rememberSelected: false,
    fixedColumns: false,
    fixedNumber: 0,
    fixedRightNumber: 0,
    queryParams: $.table.queryParams,
    rowStyle: undefined
};
var options = $.extend(defaults, {});
$('#' + options.id).bootstrapTable({
    id: options.id,
    url: options.url,                                   // 请求后台的URL(*)
    contentType: "application/x-www-form-urlencoded",   // 编码类型
    method: options.method,                             // 请求方式(*)
    cache: false,                                       // 是否使用缓存
    height: options.height,                             // 表格的高度
    striped: options.striped,                           // 是否显示行间隔色
    sortable: true,                                     // 是否启用排序
    sortStable: true,                                   // 设置为 true 将获得稳定的排序
    sortName: options.sortName,                         // 排序列名称
    sortOrder: options.sortOrder,                       // 排序方式  asc 或者 desc
    pagination: options.pagination,                     // 是否显示分页(*)
    paginationLoop: options.paginationLoop,             // 是否启用分页条无限循环的功能
    pageNumber: 1,                                      // 初始化加载第一页,默认第一页
    pageSize: options.pageSize,                         // 每页的记录行数(*)
    pageList: options.pageList,                         // 可供选择的每页的行数(*)
    firstLoad: options.firstLoad,                       // 是否首次请求加载数据,对于数据较大可以配置false
    escape: options.escape,                             // 转义HTML字符串
    showFooter: options.showFooter,                     // 是否显示表尾
    iconSize: 'outline',                                // 图标大小:undefined默认的按钮尺寸 xs超小按钮sm小按钮lg大按钮
    toolbar: '#' + options.toolbar,                     // 指定工作栏
    loadingFontSize: options.loadingFontSize,           // 自定义加载文本的字体大小
    sidePagination: options.sidePagination,             // server启用服务端分页client客户端分页
    search: options.search,                             // 是否显示搜索框功能
    searchText: options.searchText,                     // 搜索框初始显示的内容,默认为空
    showSearch: options.showSearch,                     // 是否显示检索信息
    showPageGo: options.showPageGo,                     // 是否显示跳转页
    showRefresh: options.showRefresh,                   // 是否显示刷新按钮
    showColumns: options.showColumns,                   // 是否显示隐藏某列下拉框
    showToggle: options.showToggle,                     // 是否显示详细视图和列表视图的切换按钮
    showExport: options.showExport,                     // 是否支持导出文件
    showPrint: options.showPrint,                       // 是否支持打印页面
    showHeader: options.showHeader,                     // 是否显示表头
    showFullscreen: options.showFullscreen,             // 是否显示全屏按钮
    uniqueId: options.uniqueId,                         // 唯一的标识符
    clickToSelect: options.clickToSelect,               // 是否启用点击选中行
    singleSelect: options.singleSelect,                 // 是否单选checkbox
    mobileResponsive: options.mobileResponsive,         // 是否支持移动端适配
    cardView: options.cardView,                         // 是否启用显示卡片视图
    detailView: options.detailView,                     // 是否启用显示细节视图
    onCheck: options.onCheck,                           // 当选择此行时触发
    onUncheck: options.onUncheck,                       // 当取消此行时触发
    onCheckAll: options.onCheckAll,                     // 当全选行时触发
    onUncheckAll: options.onUncheckAll,                 // 当取消全选行时触发
    onClickRow: options.onClickRow,                     // 点击某行触发的事件
    onDblClickRow: options.onDblClickRow,               // 双击某行触发的事件
    onClickCell: options.onClickCell,                   // 单击某格触发的事件
    onDblClickCell: options.onDblClickCell,             // 双击某格触发的事件
    onEditableSave: options.onEditableSave,             // 行内编辑保存的事件
    onExpandRow: options.onExpandRow,                   // 点击详细视图的事件
    onPostBody: options.onPostBody,                     // 渲染完成后执行的事件
    maintainSelected: options.maintainSelected,         // 前端翻页时保留所选行
    rememberSelected: options.rememberSelected,         // 启用翻页记住前面的选择
    fixedColumns: options.fixedColumns,                 // 是否启用冻结列(左侧)
    fixedNumber: options.fixedNumber,                   // 列冻结的个数(左侧)
    fixedRightNumber: options.fixedRightNumber,         // 列冻结的个数(右侧)
    onReorderRow: options.onReorderRow,                 // 当拖拽结束后处理函数
    queryParams: options.queryParams,                   // 传递参数(*)
    rowStyle: options.rowStyle,                         // 通过自定义函数设置行样式
    footerStyle: options.footerStyle,                   // 通过自定义函数设置页脚样式
    headerStyle: options.headerStyle,                   // 通过自定义函数设置标题样式
    columns: options.columns,                           // 显示列信息(*)
    data: options.data,                                 // 被加载的数据
    responseHandler: $.table.responseHandler,           // 在加载服务器发送来的数据之前处理函数
    onLoadSuccess: $.table.onLoadSuccess,               // 当所有数据被加载时触发处理函数
    exportOptions: options.exportOptions,               // 前端导出忽略列索引
    exportDataType: options.exportDataType,             // 导出方式(默认all:导出所有数据;basic:导出当前页的数据;selected:导出选中的数据)
    exportTypes: options.exportTypes,                   // 导出文件类型 (json、xml、png、csv、txt、sql、doc、excel、xlsx、powerpoint、pdf)
    printPageBuilder: options.printPageBuilder,         // 自定义打印页面模板
    detailFormatter: options.detailFormatter,           // 在行下面展示其他数据列表
});


// 获取整个表格数据
let tableData = $("#tableId").bootstrapTable('getData')
// 获取某一行数据,可以实时获取新增行的数据
var row = $("#tableId").bootstrapTable('getData')[index]; // index 为表格下标


let row = {id: 1, name: '张三'}
let count = $("#tableId").bootstrapTable('getData').length;
$("#tableId").bootstrapTable('insertRow', {
    index: count + 1,
    row: row
});


// index 为表格下标
var row = $("#tableId").bootstrapTable('getData')[index];
$('#tableId').bootstrapTable('remove',{field: "name", values: [row.name]});


$("#tableId").bootstrapTable("updateRow", {
	index: 0,//更新行索引,0起始
	replace: true,//合并or替换行数据,true替换,false合并,默认false
	row:{ // 更新行数据
		id:2,
		name: '李四'
	}
});

修改的话:还有一种思路就是先获取整个表格的数据,然后再重新更新整个表格


获取选择行

// rows 是个数组
let rows = $("#tableId").bootstrapTable('getSelections')


刷新表格

  • 刷新远程数据(调用接口)
$("#tableId").bootstrapTable('refresh', {
    silent: true,
    url: url, // 请求地址
    pageNumber: pageNumber, // 页码
    pageSize: pageSize // 每页的数量
});
  • 刷新本地数据
    • 原数据

      $(function() {
        var data = [
          {
            "id": 1,
            "name": "Item 1",
          },
          {
            "id": 2,
            "name": "Item 2",
          }
          // ... 更多数据项
        ];
       
        $('#tableId').bootstrapTable({
          data: data
        });
      });
      
    • 更新本地数据

      var newData = [
        {
          "id": 3,
          "name": "Item 3",
        },
        {
          "id": 4,
          "name": "Item 4",
        }
        // ... 更多数据项
      ];
       
      $('#tableId').bootstrapTable('load', newData);
      


获取配置信息

var params = $("#tableId").bootstrapTable('getOptions');


刷新options配置

$("#tableId").bootstrapTable('refreshOptions', options);


显示表格指定列

// column 列字段
$("#tableId").bootstrapTable('showColumn', column);
// 示例
$("#tableId").bootstrapTable('showColumn', 'name');


隐藏表格指定列

// column 列字段
$("#tableId").bootstrapTable('hideColumn', column);
// 示例
$("#tableId").bootstrapTable('hideColumn', 'name');


显示所有表格列

$("#tableId").bootstrapTable('showAllColumns');


隐藏所有表格列

$("#tableId").bootstrapTable('hideAllColumns');


销毁表格

$("#tableId").bootstrapTable('destroy');



如有不足,望大家多多指点! 谢谢!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zhuangv

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值