bootstrap Table插件使用demo


Posted in Javascript onAugust 07, 2017

最近研究bootstrap,它仅提供视觉效果,对于数据列表之类的并未涉及,网上找了一下,找到一个Table插件。

名为bootstrapTable。

官方地址:http://bootstrap-table.wenzhixin.net.cn/examples/

github:https://github.com/wenzhixin/bootstrap-table

因为英文差,研究了半天,做了一个demo,将就看

HTML: 

<table class="table" id="dataShow" > 
     <thead> 
       <tr> 
         <th data-checkbox="true">选择</th> 
         <th data-field="rkey">供应商名称</th> 
         <th data-field="rkey">供应商编码</th> 
         <th data-field="name">物料编码</th> 
         <th data-field="sex">申请类型</th> 
         <th data-field="birthdayString">试用申请编码</th> 
         <th data-field="age">试用状态</th> 
         <th data-field="age">厂别</th> 
         <th data-field="age">审批状态</th> 
         <th data-field="birthday">申请时间</th> 
         <th data-field="age">试用结果</th> 
       </tr> 
     </thead> 
  </table>

JS:

var currPageIndex = 0; 
    var currLimit = 10; 
 
    $(function () { 
      $("#dataShow").bootstrapTable({ 
        url: "TradHandler.ashx?request=getTradList", 
        sortName: "rkey",//排序列 
        striped: true,//?l?行 
        sidePagination: "server",//服务器分页 
        //showRefresh: true,//刷新功能 
        //search: true,//搜索功能 
        clickToSelect: true,//选择行即选择checkbox 
        singleSelect: true,//仅允许单选 
        //searchOnEnterKey: true,//ENTER键搜索 
        pagination: true,//启用分页 
        escape: true,//过滤危险字符 
        queryParams: getParams,//携带参数 
        pageCount: 10,//每页行数 
        pageIndex: 0,//其实页 
        method: "get",//请求格式 
        //toolbar: "#toolBar", 
        onPageChange: function (number, size) { 
          currPageIndex = number; 
          currLimit = size 
        }, 
        onLoadSuccess: function () 
        { 
          $("#searchBtn").button('reset'); 
        } 
      }); 
 
      //搜索 
      $("#searchBtn").click(function () { 
        $(this).button('loading'); 
        var nullparamss = {}; 
        $("#dataShow").bootstrapTable("refresh", nullparamss); 
         
      }); 
      //enter键搜索 
      $("#searchKey").keydown(function (event) { 
        if (event.keyCode == 13) 
        { 
          $("#searchBtn").click(); 
        } 
      }); 
      //阻止enter键提交表单 
      $("#mainForm").submit(function () { 
        return false; 
      }); 
 
       
    }); 
    //默认加载时携带参数 
    function getParams(params) { 
      var searchKey = $("#searchKey").val(); 
      return { bysex: 1, limit: params.limit, offset: params.offset, search: searchKey }; 
    }

TradHandler.ashx:

/// <summary> 
    /// 获取批量数据示例 
    /// </summary> 
    /// <param name="context"></param> 
    private void getTradList(HttpContext context) 
    { 
      //用于序列化实体类的对象 
      JavaScriptSerializer jss = new JavaScriptSerializer(); 
 
      #region 模拟数据获取 
      List<SimpleModel> list = new List<SimpleModel>(); 
      for (int i = 0; i < 1000; i++) 
      { 
        list.Add(new SimpleModel() { age = 18, name = "小李" + i, rkey = i + 1, sex = "男" }); 
      } 
 
 
      //请求中携带的条件 
      string bysex = context.Request.Params["bysex"]; 
      string searchKey = context.Request.Params["search"]; 
 
      //?求中?y?У捻??岛拖? 
      int dataIndex = Convert.ToInt32(context.Request.Params["offset"]); 
      int pageCount = Convert.ToInt32(context.Request.Params["limit"]); 
 
      //查询满足条件的数据 
      List<SimpleModel> getList; 
      if (bysex != null && searchKey != null) 
      { 
        getList = (from p in list 
              where p.sex == (bysex == "0" ? "女" : "男") && p.name.Contains(searchKey.Trim()) 
              select p).ToList(); 
      } 
      else 
      { 
        getList = list; 
      } 
      #endregion 
 
      //将结果增加一列序号列 
      Dictionary<int, SimpleModel> testModel = new Dictionary<int, SimpleModel>(); 
      for (int i=0;i< getList.Count;i++) 
      { 
        testModel.Add(i + 1, getList[i]); 
      } 
       
      //给分页实体赋值 
      PageModels<SimpleModel> model = new PageModels<SimpleModel>(); 
      model.total = getList.Count; 
      if (getList.Count % pageCount == 0) 
        model.page = getList.Count / pageCount; 
      else 
        model.page = (getList.Count / pageCount) + 1; 
 
      //?取????的?? 
      model.rows = testModel.Where(t => t.Key > dataIndex && t.Key <= dataIndex + pageCount).Select(t => t.Value).ToList(); 
 
      //将查询结果返回 
      context.Response.Write(jss.Serialize(model)); 
    }

有同学问pagemodel实体类,这里也分享一下,泛型实体类,因为该插件需要这些属性才能正常自动绑定

[Serializable] 
  public class TablePageModel<T> 
  { 
    /// <summary> 
    /// ?行? 
    /// </summary> 
    public long total { get; set; } 
 
    /// <summary> 
    /// 总页数 
    /// </summary> 
    public int page { get; set; } 
 
    private List<T> _rows; 
    /// <summary> 
    /// ??? 
    /// </summary> 
    public List<T> rows 
    { 
      get 
      { 
        if (_rows == null) 
          _rows = new List<T>(); 
        return _rows; 
      } 
      set 
      { 
        _rows = value; 
      } 
    } 
  }

展示数据结果如下:

bootstrap Table插件使用demo 

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
ExtJS扩展 垂直tabLayout实现代码
Jun 21 Javascript
JQuery Tips(3) 关于$()包装集内元素的改变
Dec 14 Javascript
contains和compareDocumentPosition 方法来确定是否HTML节点间的关系
Sep 13 Javascript
JavaScript中计算网页中某个元素的位置
Jun 10 Javascript
javascript实现加载xml文件的方法
Nov 24 Javascript
JS中常用的输出方式(五种)
Jun 12 Javascript
JavaScript基于replace+正则实现ES6的字符串模版功能
Apr 25 Javascript
JavaScript制作简单的框选图表
May 15 Javascript
ionic 自定义弹框效果
Jun 27 Javascript
JavaScript内存泄漏的处理方式
Nov 20 Javascript
详解如何修改 node_modules 里的文件
May 22 Javascript
解决vuex数据页面刷新后初始化操作
Jul 26 Javascript
Django+Vue.js搭建前后端分离项目的示例
Aug 07 #Javascript
React进阶学习之组件的解耦之道
Aug 07 #Javascript
详解前端路由实现与react-router使用姿势
Aug 07 #Javascript
React中使用collections时key的重要性详解
Aug 07 #Javascript
react路由配置方式详解
Aug 07 #Javascript
深入理解vue.js中$watch的oldvalue与newValue
Aug 07 #Javascript
JavaScript调试之console.log调试的一个小技巧分享
Aug 07 #Javascript
You might like
利用php生成验证码
2017/02/23 PHP
php redis实现对200w用户的即时推送
2017/03/04 PHP
Laravel 不同生产环境服务器的判断实践
2019/10/15 PHP
xml 封装与解析(javascript和C#中)
2009/07/26 Javascript
iframe 异步加载技术及性能分析
2011/07/19 Javascript
常用的几段javascript代码分享
2014/03/25 Javascript
JavaScript基础教程之alert弹出提示框实例
2014/10/16 Javascript
JavaScript编程中容易出BUG的几点小知识
2015/01/31 Javascript
基于node实现websocket协议
2016/04/25 Javascript
Bootstrap编写一个在当前网页弹出可关闭的对话框 非弹窗
2016/06/30 Javascript
jQuery弹出窗口打开链接的实现代码
2016/12/24 Javascript
详谈表单重复提交的三种情况及解决方法
2017/08/16 Javascript
webpack打包并将文件加载到指定的位置方法
2018/02/22 Javascript
js实现文章目录索引导航(table of content)
2020/05/10 Javascript
vue基于better-scroll仿京东分类列表
2020/06/30 Javascript
Python+django实现文件下载
2016/01/17 Python
解决python大批量读写.doc文件的问题
2018/05/08 Python
pandas.DataFrame选取/排除特定行的方法
2018/07/03 Python
提升Python程序性能的7个习惯
2019/04/14 Python
Python 中由 yield 实现异步操作
2020/05/04 Python
opencv 实现特定颜色线条提取与定位操作
2020/06/02 Python
基于python调用jenkins-cli实现快速发布
2020/08/14 Python
appium+python自动化配置(adk、jdk、node.js)
2020/11/17 Python
德购商城:德国进口直邮商城
2017/06/13 全球购物
爱普生美国官网:Epson美国
2018/11/05 全球购物
苏格兰领先的多渠道鞋店:Begg Shoes
2019/10/22 全球购物
Java TransactionAPI (JTA) 主要包含几部分
2012/12/07 面试题
Javascript如何发送一个Ajax请求
2015/01/26 面试题
生日主持词
2014/03/20 职场文书
2014年创先争优活动总结
2014/05/04 职场文书
高考励志标语
2014/06/05 职场文书
OpenCV3.3+Python3.6实现图片高斯模糊
2021/05/18 Python
go语言中http超时引发的事故解决
2021/06/02 Golang
数据库之SQL技巧整理案例
2021/07/07 SQL Server
Python用tkinter实现自定义记事本的方法详解
2022/03/31 Python
Win11 22H2 2022怎么更新? 获得Win1122H22022版本升级技巧
2022/09/23 数码科技