记BootstrapTable两种渲染⽅式
这⾥主要区别两种Bootstrap Table的数据渲染⽅式,⼀、属性渲染⽅式,⼆、JS渲染⽅式
⼯作直接接⼿前⼈的,之前都直接在table标签上渲染属性,后⾯因为项⽬需要,同⼀页⾯的表格,需要申请不同的接⼝获取数据,写两个表格后期数据量⼤的时候浪费页⾯资源还增加了请求,所以最后改成了JS渲染⽅式,先贴表格效果:
⼀是属性渲染⽅式:省去表格所在项⽬引⽤的样式,单论数据加载,HTML代码就是简单的table表格的结构,table标签上添加data-属性,控制表格渲染效果。
HTML:
1<table id="UnDistributeTable" class="table table-hover  table-responsive table-bordered grayTable" data-toggle="table"
2      data-query-params="Setparams_UnDistribute" data-query-params-type="" data-method="post"
3      data-url="/api/data "
4      data-side-pagination="server" data-sort-name=""
5      data-id-field="WorkID" data-height="" data-page-number="1" data-response-handler="GetData" data-striped=true
6data-pagination="true" data-page-size="15" data-page-list="[50,100,200]">
7<thead>
8<tr>
9<th data-field="PONum" data-sortable="true">
10                PO单号
11</th>
12<th data-field="AllotWorkNum" data-sortable="true">
13分配单号
14</th>
15<th data-field="NKAFlagName" data-sortable="true">
16单据类型
17</th>
18<th data-field="Purpose" data-sortable="true">
19⽤途
20</th>
21<th data-field="SumQuantity">
22物料总量
23</th>
24<th data-field="SumAllocationQuantity">
25已分配数量
26</th>
27<th data-field="OperatorName">
28上级办理⼈
29</th>
30<th data-field="OperatorTime">
31上级办理时间
32</th>
33<th data-field="" data-formatter="Opera">
34操作
35</th>
36</tr>
37</thead>
38</table>
HTML Code
JS:
1function Setparams_UnDistribute(params) {
2var e = [{ PageSize: params.pageSize, PageIndex: params.pageNumber, OrderByField: params.sortName, OrderByType: params.sortOrder == "asc" ? 0 : 1, AllotState: 0,PONum:"" }];
3return e;
4 }
5
6function GetData(res) {
7return {
8        "total": res.Total,  //总页数
9        "rows": res.Data  //数据
10    };
11 }
JS Code
这样就能够加载出路径url的数据了。
⼆就是JS加载⽅式,不会在table标签上添加其他的属性,table的结构更加清楚。
HTML:
1<table id="DistributeTable" class="table table-hover  table-responsive table-bordered grayTable">
2<thead>
3<tr>
4<th data-field="CheckState">
5审核状态
6</th>
7<th data-field="PONum" data-sortable="true">
8                PO单号
9</th>
10<th data-field="WorkNum" data-sortable="true">
11分配单号
12</th>
13<th data-field="NKAFlagName" data-sortable="true">
14单据类型
15</th>
16<th data-field="Purpose" data-sortable="true">
17⽤途
18</th>
19<th data-field="SumQuantity">
20物料总量
21</th>
22<th data-field="SumAllocationQuantity">
23本次分配数量
24</th>
25<th data-field="OperatorName" data-sortable="true">
26分配⼈
27</th>
28<th data-field="OperatorTime" data-sortable="true">
29分配时间
30</th>
31<th data-field="SumQuantity" data-sortable="true">
bootstrap项目32物料总量
33</th>
34<th data-field="" data-formatter="OperaView">
35操作
36</th>
37</tr>
38</thead>
39</table>
HTML Code
JS:
1 $(function () {
2var oTable = new TableInit();
3  oTable.Init();
4 });
5var TableInit = function () {
6var oTableInit = new Object();
7//初始化Table
8    oTableInit.Init = function () {
9var url = ‘/api/data’;        //请求后台的URL(*)
10
11        $('#DistributeTable').bootstrapTable({
12            url: url,
13            method: 'post',
14            striped: true,
15            cache: false,                  //是否使⽤缓存,默认为true
16            pagination: true,
17            sortable: true,
18            sortName:"PONum",
19            queryParams: oTableInit.queryParams,
20            sidePagination: "server",
21            pageNumber: 1,
22            pageSize:15,
23            pageList: [25, 50, 100],
24            uniqueId: "id",              //每⼀⾏的唯⼀标识,⼀般为主键列
25            responseHandler: function (res) {
26return {
27                    "total": res.Total,
28                    "rows": res.Data
29                };
30
31            }
32        });
33    };
34
35//得到查询的参数
36    oTableInit.queryParams = function (params) {
37var e = [{ PageSize: params.limit, PageIndex: Math.floor(params.offset / params.limit) + 1, OrderByField: params.sort , OrderByType: der == "asc" ? 0 : 1, AllotState: 1, PONum:"" }]; 38return e;
39    };
40return oTableInit;
41 };
JS Code
两种⽅式,渲染所得效果⼀致,完美,具体使⽤时,采⽤哪种⽅式渲染表格都可以,属性渲染更清楚显⽰出表格与参数设置的对应关系,适⽤于功能固定的表格,如果页⾯同⼀表所要加载的数据源会发⽣变化的话,最好使⽤第⼆种JS 渲染表格的⽅式,可以添加表格加载条件,来判断具体加载哪⼀数据源的数据,控制表格表格加载数据并渲染。
另,Bootstrap Table表格中有⼀点我⽐较迷茫的地⽅还没弄清楚,所以也提⼀下,就是table标签中⼀
般有data-toggle=”table”属性值的设置,设置了就表⽰不写JS启⽤表格,⼀般在对table进⾏JS初始化的时候,⽐如写$(“#table”).bootstrapTable({“data”, data});这种的时候,如果声明了该属性,就⽆法正常渲染表格;但是如果使⽤Bootstrap Table⽅法渲染表格,⽐如$(“#table”).bootstrapTable(“load”, data);就必须添加该属性,否则也⽆法正常显⽰。
注-版权声明:本⽂为博主原创⽂章,未经博主允许不得转载。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。