这里主要区别两种Bootstrap Table的数据渲染方式,一、属性渲染方式,二、JS渲染方式

工作直接接手前人的,之前都直接在table标签上渲染属性,后面因为项目需要,同一页面的表格,需要申请不同的接口获取数据,写两个表格后期数据量大的时候浪费页面资源还增加了请求,所以最后改成了JS渲染方式,先贴表格效果:

一是属性渲染方式:省去表格所在项目引用的样式,单论数据加载,HTML代码就是简单的table表格的结构,table标签上添加data-属性,控制表格渲染效果。

HTML:

 <table id="UnDistributeTable" class="table table-hover  table-responsive table-bordered grayTable" data-toggle="table"
data-query-params="Setparams_UnDistribute" data-query-params-type="" data-method="post"
data-url="/api/data "
data-side-pagination="server" data-sort-name=""
data-id-field="WorkID" data-height="" data-page-number="1" data-response-handler="GetData" data-striped=true
data-pagination="true" data-page-size="15" data-page-list="[50,100,200]">
<thead>
<tr>
<th data-field="PONum" data-sortable="true">
PO单号
</th>
<th data-field="AllotWorkNum" data-sortable="true">
分配单号
</th>
<th data-field="NKAFlagName" data-sortable="true">
单据类型
</th>
<th data-field="Purpose" data-sortable="true">
用途
</th>
<th data-field="SumQuantity">
物料总量
</th>
<th data-field="SumAllocationQuantity" >
已分配数量
</th>
<th data-field="OperatorName">
上级办理人
</th>
<th data-field="OperatorTime">
上级办理时间
</th>
<th data-field="" data-formatter="Opera" >
操作
</th>
</tr>
</thead>
</table>

HTML Code

JS:

 function Setparams_UnDistribute(params) {
var e = [{ PageSize: params.pageSize, PageIndex: params.pageNumber, OrderByField: params.sortName, OrderByType: params.sortOrder == "asc" ? 0 : 1, AllotState: 0,PONum:"" }];
return e;
} function GetData(res) {
return {
"total": res.Total, //总页数
"rows": res.Data //数据
};
}

JS Code

这样就能够加载出路径url的数据了。

二就是JS加载方式,不会在table标签上添加其他的属性,table的结构更加清楚。

HTML:

 <table id="DistributeTable" class="table table-hover  table-responsive table-bordered grayTable" >
<thead>
<tr>
<th data-field="CheckState" >
审核状态
</th>
<th data-field="PONum" data-sortable="true">
PO单号
</th>
<th data-field="WorkNum" data-sortable="true">
分配单号
</th>
<th data-field="NKAFlagName" data-sortable="true">
单据类型
</th>
<th data-field="Purpose" data-sortable="true">
用途
</th>
<th data-field="SumQuantity" >
物料总量
</th>
<th data-field="SumAllocationQuantity" >
本次分配数量
</th>
<th data-field="OperatorName" data-sortable="true">
分配人
</th>
<th data-field="OperatorTime" data-sortable="true">
分配时间
</th>
<th data-field="SumQuantity" data-sortable="true">
物料总量
</th>
<th data-field="" data-formatter="OperaView">
操作
</th>
</tr>
</thead>
</table>

HTML Code

JS:

 $(function () {
var oTable = new TableInit();
oTable.Init();
});
var TableInit = function () {
var oTableInit = new Object();
//初始化Table
oTableInit.Init = function () {
var url = ‘/api/data’; //请求后台的URL(*) $('#DistributeTable').bootstrapTable({
url: url,
method: 'post',
striped: true,
cache: false, //是否使用缓存,默认为true
pagination: true,
sortable: true,
sortName:"PONum",
queryParams: oTableInit.queryParams,
sidePagination: "server",
pageNumber: 1,
pageSize:15,
pageList: [25, 50, 100],
uniqueId: "id", //每一行的唯一标识,一般为主键列
responseHandler: function (res) {
return {
"total": res.Total,
"rows": res.Data
}; }
});
}; //得到查询的参数
oTableInit.queryParams = function (params) {
var e = [{ PageSize: params.limit, PageIndex: Math.floor(params.offset / params.limit) + 1, OrderByField: params.sort , OrderByType: params.order == "asc" ? 0 : 1, AllotState: 1, PONum:"" }];
return e;
};
return oTableInit;
};

JS Code

两种方式,渲染所得效果一致,完美,具体使用时,采用哪种方式渲染表格都可以,属性渲染更清楚显示出表格与参数设置的对应关系,适用于功能固定的表格,如果页面同一表所要加载的数据源会发生变化的话,最好使用第二种JS 渲染表格的方式,可以添加表格加载条件,来判断具体加载哪一数据源的数据,控制表格表格加载数据并渲染。

另,Bootstrap Table表格中有一点我比较迷茫的地方还没弄清楚,所以也提一下,就是table标签中一般有data-toggle=”table”属性值的设置,设置了就表示不写JS启用表格,一般在对table进行JS初始化的时候,比如写$(“#table”).bootstrapTable({“data”, data});这种的时候,如果声明了该属性,就无法正常渲染表格;但是如果使用Bootstrap Table方法渲染表格,比如$(“#table”).bootstrapTable(“load”, data);就必须添加该属性,否则也无法正常显示。

注-版权声明:本文为博主原创文章,未经博主允许不得转载。

记Bootstrap Table两种渲染方式的更多相关文章

  1. 测开之路一百零五:bootstrap的两种引用方式

    一:下载到本地引用: 3.3.7版本:https://getbootstrap.com/docs/3.3/getting-started/#download 下载后解压到本地项目中引用 第二种,cdn ...

  2. EasyPlayer RTSP Windows播放器D3D,GDI的几种渲染方式的选择区别

    EasyPlayer-RTSP windows播放器支持D3D和GDI两种渲染方式,其中D3D支持格式如下: DISPLAY_FORMAT_YV12 DISPLAY_FORMAT_YUY2 DISPL ...

  3. RabbitMQ学习第二记:工作队列的两种分发方式,轮询分发(Round-robin)和 公平分发(Fair dispatch)

    1.什么是RabbitMQ工作队列 我们在应用程序使用消息系统时,一般情况下生产者往队列里插入数据时速度是比较快的,但是消费者消费数据往往涉及到一些业务逻辑处理导致速度跟不上生产者生产数据.因此如果一 ...

  4. PlaceHolder的两种实现方式

    placeholder属性是HTML5 中为input添加的.在input上提供一个占位符,文字形式展示输入字段预期值的提示信息(hint),该字段会在输入为空时显示. 如 <input typ ...

  5. Java中String对象两种赋值方式的区别

    本文修改于:https://www.zhihu.com/question/29884421/answer/113785601 前言:在java中,String有两种赋值方式,第一种是通过“字面量”赋值 ...

  6. hibernate 一对一 one to one的两种配置方式

    hibernate中one-to-one两种配置方式 标签: hibernateHibernateone-to-one 2013-02-19 17:44 11445人阅读 评论(1) 收藏 举报  分 ...

  7. 巨蟒python全栈开发数据库前端6:事件onclick的两种绑定方式&&onblur和onfocus事件&&window.onload解释&&小米商城讲解

    1.回顾上节内容(JavaScript) 一.JavaScript概述 1.ECMAScript和JavaScript的关系 2.ECMAScript的历史 3.JavaScript是一门前后端都可以 ...

  8. Hibernate中双向多对多的两种配置方式

    Hibernate中双向多对多的两种配置方式 1.建立多对多双向关联关系 package cn.happy.entitys; import java.util.HashSet; import java ...

  9. datagrid的toolbar的两种实现方式

    datagrid的toolbar的两种实现方式 1.在html文件中,可以在设置toolbar="#tb",再在div中设置id="tb" <table ...

随机推荐

  1. uvalive 4730王国kingdom(并查集+线段树)

     题意:有T组測试数据.每组数据的N表示有N个城市,接下来的N行里每行给出每一个城市的坐标(0<=x,y<=1000000),然后有M(1<M<200000)个操作,操作有 ...

  2. 记一次httpclient Connection reset问题定位

    问题:某业务系统在运行一段时间后,某个API一定概率偶现Connection reset现象. 问题定位: 首先想到的是要本地复现出这个问题,但一直复现不出来. 1.根据线上问题相关日志判断应该是有部 ...

  3. input file HTML控件控制

    网页上添加一个input file HTML控件: 1 <input id="File1" type="file" /> 默认是这样的,所有文件类型 ...

  4. asp.net MVC4.0中几种控制器的区别

    空的MVC控制器MVC控制器的读/写操作和视图,使用实体框架MVC控制器带空的读/写操作空API控制器API控制器的读/写操作和视图,使用实体框架API控制器带空的读/写操作

  5. 实现图片懒加载(lazyload)

    对页面加载速度影响最大的就是图片,一张普通的图片可以达到几M的大小,而代码也许就只有几十KB.当页面图片很多时,页面的加载速度缓慢,几S钟内页面没有加载完成,也许会失去很多的用户. 所以,对于图片过多 ...

  6. SQL函数-str()

    1 str()函数用于将数值类型数据转换未字符类型. 2 str()函数语法 select str(数字类型的表达式[,表达式总长度][,小数点后面的位数]) 表达式总长度和小数点后面的位数为可选择参 ...

  7. EditPlus 使用技巧以及快捷键

    一边阅读,一边动手吧! 为了达到更好的效果,请你先下载我打包的这个 EditPlus压缩包文件(压缩包文件为绿色的EditPlus2.31英文版,含自动完成文件,高亮语法文件和剪切板代码片断文件,这些 ...

  8. cogs 1396. wwww

    1396. wwww ☆   输入文件:wwww.in   输出文件:wwww.out   简单对比时间限制:1 s   内存限制:256 MB [题目描述] 对于一个递归函数w(a,b,c) 如果 ...

  9. 利用gradle加入构建版本

    在java的程序中,貌似都没有这个构建版本的概念.用的诸如eclipse. idea和android studio的IDE也没有直接提供构建版本的选项.只是我却想在android程序的版本其中加入一个 ...

  10. 马上运行函数-$(function(){})篇

    QQ:1187362408 欢迎技术交流和学习 马上运行函数-$(function(){})篇(jquery): TODO: 1.jquery:jQuery(function($){ }) 与 $(d ...