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 相关文章推荐
jquery实现tr元素的上下移动示例代码
Dec 20 Javascript
7个让JavaScript变得更好的注意事项
Jan 28 Javascript
js获取微信版本号的方法
May 12 Javascript
Bootstrap滚动监听(Scrollspy)插件详解
Apr 26 Javascript
js实现兼容PC端和移动端滑块拖动选择数字效果
Feb 16 Javascript
easyui关于validatebox实现多重规则验证的方法(必看)
Apr 12 Javascript
JS和JQuery实现雪花飘落效果
Nov 30 jQuery
jQuery实现的点击标题文字切换字体效果示例【测试可用】
Apr 26 jQuery
深入理解JavaScript的async/await
Aug 05 Javascript
React实现全局组件的Toast轻提示效果
Sep 21 Javascript
vue单页应用在页面刷新时保留状态数据的方法
Sep 21 Javascript
JavaScript利用html5新方法操作元素类名详解
Nov 27 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
关于文本留言本的分页代码
2006/10/09 PHP
一个可以找出源代码中所有中文的工具
2006/10/25 PHP
phpcms模块开发之swfupload的使用介绍
2013/04/28 PHP
php中is_null,empty,isset,unset 的区别详细介绍
2013/04/28 PHP
php强制用户转向www域名的方法
2015/06/19 PHP
PHP输出缓冲控制Output Control系列函数详解
2015/07/02 PHP
Laravel框架中Blade模板的用法示例
2017/08/30 PHP
PHP实现git部署的方法教程
2017/12/19 PHP
浅析PHP7 的垃圾回收机制
2019/09/06 PHP
PHP实现简易用户登录系统
2020/07/10 PHP
JavaScript设计模式之适配器模式介绍
2014/12/28 Javascript
JS实战篇之收缩菜单表单布局
2016/12/10 Javascript
JS中如何实现点击a标签返回页面顶部的问题
2017/01/19 Javascript
使用nodeJs来安装less及编译less文件为css文件的方法
2017/11/20 NodeJs
Angular2管道Pipe及自定义管道格式数据用法实例分析
2017/11/29 Javascript
实例解析ES6 Proxy使用场景介绍
2018/01/08 Javascript
浅谈Webpack打包优化技巧
2018/06/12 Javascript
jQuery中DOM常见操作实例小结
2019/08/01 jQuery
如何在selenium中使用js实现定位
2020/08/18 Javascript
vue单应用在ios系统中实现微信分享功能操作
2020/09/07 Javascript
[01:32]DOTA2次级联赛——首支职业女子战队选拔赛全记录
2014/10/23 DOTA
Python利用多进程将大量数据放入有限内存的教程
2015/04/01 Python
python matlibplot绘制多条曲线图
2021/02/19 Python
使用Django连接Mysql数据库步骤
2019/01/15 Python
Python-copy()与deepcopy()区别详解
2019/07/12 Python
Python学习笔记之函数的参数和返回值的使用
2019/11/20 Python
django框架ModelForm组件用法详解
2019/12/11 Python
Python3 利用face_recognition实现人脸识别的方法
2020/03/13 Python
python将字典内容写入json文件的实例代码
2020/08/12 Python
椰子猫砂:CatSpot
2018/08/27 全球购物
加拿大鞋网:Globo Shoes
2019/12/26 全球购物
贝佳斯官方网站:Borghese
2020/05/08 全球购物
农民工工资支付承诺函
2014/03/31 职场文书
小学生评语集锦
2014/04/18 职场文书
青春励志演讲稿
2014/04/29 职场文书
初中学生操行评语
2014/12/26 职场文书