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 相关文章推荐
javascript之ESC(第二类混淆)
May 06 Javascript
showModalDialog模态对话框的使用详解以及浏览器兼容
Jan 11 Javascript
关于页面嵌入swf覆盖div层的问题的解决方法
Feb 11 Javascript
JavaScript表单通过正则表达式验证电话号码
Mar 14 Javascript
jQuery队列操作方法实例
Jun 11 Javascript
浅谈Sizzle的“编译原理”
Apr 14 Javascript
JavaScript常用基础知识强化学习
Dec 09 Javascript
微信小程序 数据交互与渲染实例详解
Jan 21 Javascript
基于JavaScript实现的顺序查找算法示例
Apr 14 Javascript
详解JS中的柯里化(currying)
Aug 17 Javascript
JavaScript中常见内置函数用法示例
May 14 Javascript
微信小程序绑定手机号获取验证码功能
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
投票管理程序
2006/10/09 PHP
PHP 数组实例说明
2008/08/18 PHP
PHP序列号生成函数和字符串替换函数代码
2012/06/07 PHP
php实例分享之html转为rtf格式
2014/06/02 PHP
php 使用html5实现多文件上传实例
2016/10/24 PHP
浅谈Yii乐观锁的使用及原理
2017/07/25 PHP
tp5(thinkPHP5)框架实现多数据库查询的方法
2019/01/10 PHP
window.event.keyCode兼容IE和Firefox实现js代码
2013/05/30 Javascript
js 剪切板应用clipboardData详细解析
2013/12/17 Javascript
javascript 动态创建表格
2015/01/08 Javascript
JS替换字符串中空格方法
2015/04/17 Javascript
原生js实现图片层叠轮播切换效果
2016/02/02 Javascript
Bootstrap组件(一)之菜单
2016/05/11 Javascript
Node.js刷新session过期时间的实现方法推荐
2016/05/18 Javascript
AngularJS应用开发思维之依赖注入3
2016/08/19 Javascript
如何利用JSHint减少JavaScript的错误
2016/08/23 Javascript
jQuery实现邮箱下拉列表自动补全功能
2016/09/08 Javascript
原生js实现放大镜效果
2017/01/11 Javascript
jQuery使用动画队列自定义动画操作示例
2018/06/16 jQuery
原生JS实现的放大镜特效示例【测试可用】
2018/12/08 Javascript
微信小程序textarea层级过高的解决方法
2019/03/04 Javascript
微信小程序后端实现授权登录
2020/02/24 Javascript
Django+Ajax+jQuery实现网页动态更新的实例
2018/05/28 Python
Python调用.NET库的方法步骤
2019/12/27 Python
PyTorch中Tensor的数据统计示例
2020/02/17 Python
Iconfont(矢量图标)+iconmoon(图标svg互转)配合javascript实现社交分享系统
2020/04/21 Python
jupyter notebook 添加kernel permission denied的操作
2020/04/21 Python
英国PC组件和在线电脑商店:SCAN
2019/04/18 全球购物
私有程序集与共享程序集有什么区别
2013/04/05 面试题
《台湾的蝴蝶谷》教学反思
2014/02/20 职场文书
高校自主招生校长推荐信
2015/03/23 职场文书
2015年公司行政后勤工作总结
2015/05/20 职场文书
小学一年级数学教学反思
2016/02/16 职场文书
如何书写授权委托书?
2019/06/25 职场文书
node.js如何自定义实现一个EventEmitter
2021/07/16 Javascript
尝试使用Python爬取城市租房信息
2022/04/12 Python