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 相关文章推荐
Document 对象的常用方法
Jul 31 Javascript
javascript 另一种图片滚动切换效果思路
Apr 20 Javascript
JavaScript(js)设置默认输入焦点(focus)
Dec 28 Javascript
基于KMP算法JavaScript的实现方法分析
May 03 Javascript
javascript学习笔记之函数定义
Jun 25 Javascript
Backbone View 之间通信的三种方式
Aug 09 Javascript
基于jQuery实现歌词滚动版音乐播放器的代码
Sep 17 Javascript
web 屏蔽BackSpace键实例代码
Dec 24 Javascript
js中字符型和数值型数字的互相转化方法(必看)
Apr 25 Javascript
浅谈vue中.vue文件解析流程
Apr 24 Javascript
ES6之模版字符串的具体使用
May 17 Javascript
解决vue安装less报错Failed to compile with 1 errors的问题
Oct 22 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实现的简单缓存类
2015/07/29 PHP
验证token、回复图文\文本、推送消息的实用微信类php代码
2016/06/28 PHP
yii框架结合charjs统计上一年与当前年数据的方法示例
2020/04/04 PHP
从阿里妈妈发现的几个不错的表单验证函数
2007/09/21 Javascript
js读取本地excel文档数据的代码
2010/11/11 Javascript
js实现发送验证码后的倒计时功能
2015/05/28 Javascript
JS实现六位字符密码输入器功能
2016/08/19 Javascript
Vue.js每天必学之指令系统与自定义指令
2016/09/07 Javascript
JavaScript轮播图简单制作方法
2017/02/20 Javascript
VueJS事件处理器v-on的使用方法
2017/09/27 Javascript
基于Vue的移动端图片裁剪组件功能
2017/11/28 Javascript
简单使用webpack打包文件的实现
2019/10/29 Javascript
[02:09]抵达西雅图!中国军团加油!
2014/07/07 DOTA
[02:03]永远的信仰DOTA2 中国军团历届国际邀请赛回顾
2016/06/26 DOTA
[52:06]FNATIC vs NIP 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
python3处理含有中文的url方法
2018/05/10 Python
python3监控CentOS磁盘空间脚本
2018/06/21 Python
用Python分析3天破10亿的《我不是药神》到底神在哪?
2018/07/12 Python
Django csrf 验证问题的实现
2018/10/09 Python
tensorboard 可以显示graph,却不能显示scalar的解决方式
2020/02/15 Python
python向企业微信发送文字和图片消息的示例
2020/09/28 Python
原生 JS+CSS+HTML 实现时序图的方法
2019/07/31 HTML / CSS
Pretty Little Thing爱尔兰:时尚女性服饰
2017/03/27 全球购物
网络编程中设计并发服务器,使用多进程与多线程,请问有什么区别?
2016/03/27 面试题
毕业生个人求职信范文分享
2014/01/05 职场文书
中学家长会邀请函
2014/01/17 职场文书
学生检讨书范文
2015/01/27 职场文书
关于学习的决心书
2015/02/05 职场文书
2015年幼师工作总结
2015/04/28 职场文书
七年级生物教学反思
2016/02/20 职场文书
2019秋季运动会口号
2019/06/25 职场文书
告诉你创业计划书的8个实用技巧
2019/07/12 职场文书
JS中一些高效的魔法运算符总结
2021/05/06 Javascript
关于React Native 无法链接模拟器的问题
2021/06/21 Javascript
python编程学习使用管道Pipe编写优化代码
2021/11/20 Python
Elasticsearch 基本查询和组合查询
2022/04/19 Python