Bootstrap-table 表头筛选控件

Bootstrap-table 表头筛选控件,根据Bootstrap-table API,在表头添加筛选排序,支持文本搜索,数值搜索,日期搜索,单选和复选。

依赖js jQuery,Bootstrap,Bootstrap-table,select2

筛选类型说明

1. 文本类型(text)

提供模糊搜索功能,根据输入的参数模糊匹配返回对应的结果

2. 数值类型(num)

提供区间搜索功能,所搜列必须为数值,可以搜索最小值和最大值之间的结果,也可以搜索所有大于最小值或小于最大值的结果。

3. 日期类型(date)

提供区间搜索日期功能,使用方法同数值类型。

4. 单选(radio)

如图所示,根据所选项筛选出对应的结果。

5. 复选(checkbox)

与单选功能相同,但可以搜索多个选项。

参数说明

表格参数默认值说明
data-advanced-sortablefalse默认false。设为true开启控件功能
列参数默认值说明
data-sortablefalse默认false。设为true开启排序功能,bootstrap-advanced-sortable.js控件开启后会覆盖bootstrap-table默认的筛选功能
data-search-type-可选参数,设置开启搜索功能。可选值:text,num,date,radio,checkbox。
data-search-select-传值参数,只有当搜索类型设为radio和checkbox时才生效,要求输入数组类型。样例:data-search-select=["选项1","选项2","选项3"]

服务端分页传参说明

1.客户端分页

sidePagination设为"client"时为客户端分页,只要把相应的数据以JSON格式传到前端即可,由前端JS来实现排序,搜索功能。

2.服务端分页

sidePagination设为"server"时为服务端分页,这时需要与服务端交互才能实现排序,搜索功能。
当选择服务器分页时,客户端会向服务端传输五个参数:

  • limit : Int类型,页面展示数据条数;
  • offest : Int类型,当前页起始行数;
  • order : String类型,排序方式,asc:顺序,desc逆序;
  • search : Option[String]类型,默认为空值。进行搜索时,会传输JSON字符串回服务端,样例:

                {"id":{"field":"id","searchType":"text","data":"100"},"name":{"field":"name","searchType":"text","data":"200"}}

                有四个参数,服务端解析这个json字符串获取相应的结果,然后截取offest - offest+limit 之间的数据传输的客户端进行展示;

  • sort : Option[String]类型,以sort列进行排序,默认为空值。

示例代码(Scala):

case class PageData(limit: Int, offset: Int, order: String, search: Option[String], sort: Option[String])

  val pageForm: Form[PageData] = Form(
    mapping(
      "limit" -> number,
      "offset" -> number,
      "order" -> text,
      "search" -> optional(text),
      "sort" -> optional(text)
    )(PageData.apply)(PageData.unapply)
  )

def dealMapDataByPage(page: PageData) = {
    val searchX = page.search match {
      case None => 获取初始数据代码
      case Some(y) => 筛选数据代码
    }
    val sortX = page.sort match {
      case None => searchX
      case Some(y) => 以列进行排序
    }
    val orderX = page.order match {
      case "asc" => sortX
      case "desc" => sortX.reverse
    }
    //返回值
    orderX
  }

前端JS代码:

 $('#table').bootstrapTable({
                    method: 'post',
                    url: "/getData",
                    sidePagination: "server",
                    contentType: "application/x-www-form-urlencoded",
                    columns:[{
                        field:"testText",
                        title:"TestText",
                        sortable:"true",
                        searchType:"text"
                    },{
                        field:"testRadio",
                        title:"TestRadio",
                        sortable:"true",
                        searchType:"radio",
                        searchSelect:["test1","test2","test3"]
                    }]
    

 

github链接:https://github.com/Westsyan/bootstrap-advanced-sortable

 

  • 3
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 17
    评论
bootstrap-table中嵌入日期控件可以通过使用第三方插件来实现。常用的日期控件插件有bootstrap-datepicker和datetimepicker。以下是使用bootstrap-datepicker插件的步骤: 1. 在页面中引入bootstrap-datepicker的css和js文件。 2. 在表格中需要嵌入日期控件中添加data-date-format属性,指定日期格式。 3. 在表格初始化时,对需要嵌入日期控件进行配置,使用formatter属性指定日期控件的html代码。 4. 在js代码中初始化日期控件,使用datepicker()方法。 下面是一个示例代码: ```html <!-- 引入bootstrap-datepicker的css和js文件 --> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.9.0/css/bootstrap-datepicker.min.css"> <script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.9.0/js/bootstrap-datepicker.min.js"></script> <table id="table"> <thead> <tr> <th>姓名</th> <th>生日</th> </tr> </thead> <tbody> <tr> <td>张三</td> <td data-date-format="yyyy-mm-dd" data-field="birthday"></td> </tr> <tr> <td>李四</td> <td data-date-format="yyyy-mm-dd" data-field="birthday"></td> </tr> </tbody> </table> <script> $(function() { // 对需要嵌入日期控件进行配置 $('#table').bootstrapTable({ columns: [{ field: 'name', title: '姓名' }, { field: 'birthday', title: '生日', formatter: function(value, row, index) { return '<input type="text" class="form-control datepicker" value="' + value + '">'; } }] }); // 初始化日期控件 $('.datepicker').datepicker({ format: 'yyyy-mm-dd', autoclose: true }); }); </script> ```
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值