欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JS表格組件神器bootstrap table詳解(強(qiáng)化版)

 更新時(shí)間:2016年05月26日 15:21:12   作者:緣天  
這篇文章主要以實(shí)例的方式為大家再次介紹了JS表格組件神器bootstrap table,bootstrap table界面采用扁平化的風(fēng)格,用戶(hù)體驗(yàn)比較好,更好兼容各種客戶(hù)端,需要了解更多bootstrap table的朋友可以參考下

一、Bootstrap Table的引入

關(guān)于Bootstrap Table的引入,一般來(lái)說(shuō)還是兩種方法:

1、直接下載源碼,添加到項(xiàng)目里面來(lái)。
由于Bootstrap Table是Bootstrap的一個(gè)組件,所以它是依賴(lài)Bootstrap的,我們首先需要添加Bootstrap的引用。

2、使用我們神奇的Nuget
打開(kāi)Nuget,搜索這兩個(gè)包

Bootstrap已經(jīng)是最新的3.3.5了,我們直接安裝即可。

而B(niǎo)ootstrap Table的版本竟然是0.4,這也太坑爹了。所以博主建議Bootstrap Table的包就直接在源碼里面去下載吧。Bootstrap Table最新的版本好像是1.9.0。

本文背景引入:

最近客戶(hù)提出需求,想將原有的管理系統(tǒng),做下優(yōu)化,通過(guò)手機(jī)也能很好展現(xiàn),想到2個(gè)方案:

a方案:保留原有的頁(yè)面,新設(shè)計(jì)一套適合手機(jī)的頁(yè)面,當(dāng)手機(jī)訪問(wèn)時(shí),進(jìn)入m.zhy.com(手機(jī)頁(yè)面),pc設(shè)備訪問(wèn)時(shí),進(jìn)入www.zhy.com(pc頁(yè)面)

b方案:采用bootstrap框架,替換原有頁(yè)面,自動(dòng)適應(yīng)手機(jī)、平板、PC 設(shè)備

采用a方案,需要設(shè)計(jì)一套界面,并且要得重新寫(xiě)適合頁(yè)面的接口,考慮到時(shí)間及成本問(wèn)題,故項(xiàng)目采用了b方案

二、效果展示

二、BootStrap table簡(jiǎn)單介紹

bootStrap table 是一個(gè)輕量級(jí)的table插件,使用AJAX獲取JSON格式的數(shù)據(jù),其分頁(yè)和數(shù)據(jù)填充很方便,支持國(guó)際化

三、使用方法

1、引入js、css

<!--css樣式-->
<link href="css/bootstrap/bootstrap.min.css" rel="stylesheet">
<link href="css/bootstrap/bootstrap-table.css" rel="stylesheet">
<!--js-->
<script src="js/bootstrap/jquery-1.12.0.min.js" type="text/javascript"></script>
<script src="js/bootstrap/bootstrap.min.js"></script>
<script src="js/bootstrap/bootstrap-table.js"></script>
<script src="js/bootstrap/bootstrap-table-zh-CN.js"></script>

2、table數(shù)據(jù)填充

bootStrap table獲取數(shù)據(jù)有兩種方式,一是通過(guò)table 的data-url屬性指定數(shù)據(jù)源,二是通過(guò)JavaScript初始化表格時(shí)指定url來(lái)獲取數(shù)據(jù)

<table data-toggle="table">
 <thead>
 ...
 </thead>
</table>
 ...
$('#table').bootstrapTable({
  url: 'data.json'
 });

 第二種方式較第一種而言在處理復(fù)雜數(shù)據(jù)時(shí)更為靈活,一般使用第二種方式來(lái)進(jìn)行table數(shù)據(jù)填充。

$(function () {
 
 //1.初始化Table
 var oTable = new TableInit();
 oTable.Init();
 
 //2.初始化Button的點(diǎn)擊事件
 /* var oButtonInit = new ButtonInit();
 oButtonInit.Init(); */
 
 });
 
 
 var TableInit = function () {
 var oTableInit = new Object();
 //初始化Table
 oTableInit.Init = function () {
  $('#tradeList').bootstrapTable({
  url: '/VenderManager/TradeList',  //請(qǐng)求后臺(tái)的URL(*)
  method: 'post',   //請(qǐng)求方式(*)
  toolbar: '#toolbar',  //工具按鈕用哪個(gè)容器
  striped: true,   //是否顯示行間隔色
  cache: false,   //是否使用緩存,默認(rèn)為true,所以一般情況下需要設(shè)置一下這個(gè)屬性(*)
  pagination: true,   //是否顯示分頁(yè)(*)
  sortable: false,   //是否啟用排序
  sortOrder: "asc",   //排序方式
  queryParams: oTableInit.queryParams,//傳遞參數(shù)(*)
  sidePagination: "server",  //分頁(yè)方式:client客戶(hù)端分頁(yè),server服務(wù)端分頁(yè)(*)
  pageNumber:1,   //初始化加載第一頁(yè),默認(rèn)第一頁(yè)
  pageSize: 50,   //每頁(yè)的記錄行數(shù)(*)
  pageList: [10, 25, 50, 100], //可供選擇的每頁(yè)的行數(shù)(*)
  strictSearch: true,
  clickToSelect: true,  //是否啟用點(diǎn)擊選中行
  height: 460,   //行高,如果沒(méi)有設(shè)置height屬性,表格自動(dòng)根據(jù)記錄條數(shù)覺(jué)得表格高度
  uniqueId: "id",   //每一行的唯一標(biāo)識(shí),一般為主鍵列
  cardView: false,   //是否顯示詳細(xì)視圖
  detailView: false,   //是否顯示父子表
  columns: [{
   field: 'id',
   title: '序號(hào)'
  }, {
   field: 'liushuiid',
   title: '交易編號(hào)'
  }, {
   field: 'orderid',
   title: '訂單號(hào)'
  }, {
   field: 'receivetime',
   title: '交易時(shí)間'
  }, {
   field: 'price',
   title: '金額'
  }, {
   field: 'coin_credit',
   title: '投入硬幣'
  }, {
   field: 'bill_credit',
   title: '投入紙幣'
  }, {
   field: 'changes',
   title: '找零'
  }, {
   field: 'tradetype',
   title: '交易類(lèi)型'
  },{
   field: 'goodmachineid',
   title: '貨機(jī)號(hào)'
  },{
   field: 'inneridname',
   title: '貨道號(hào)'
  },{
   field: 'goodsName',
   title: '商品名稱(chēng)'
  }, {
   field: 'changestatus',
   title: '支付'
  },{
   field: 'sendstatus',
   title: '出貨'
  },]
  });
 };
 
 //得到查詢(xún)的參數(shù)
 oTableInit.queryParams = function (params) {
  var temp = { //這里的鍵的名字和控制器的變量名必須一直,這邊改動(dòng),控制器也需要改成一樣的
  limit: params.limit, //頁(yè)面大小
  offset: params.offset, //頁(yè)碼
  sdate: $("#stratTime").val(),
  edate: $("#endTime").val(),
  sellerid: $("#sellerid").val(),
  orderid: $("#orderid").val(),
  CardNumber: $("#CardNumber").val(),
  maxrows: params.limit,
  pageindex:params.pageNumber,
  portid: $("#portid").val(),
  CardNumber: $("#CardNumber").val(),
  tradetype:$('input:radio[name="tradetype"]:checked').val(),
  success:$('input:radio[name="success"]:checked').val(),
  };
  return temp;
 };
 return oTableInit;
 };
 

 field字段必須與服務(wù)器端返回的字段對(duì)應(yīng)才會(huì)顯示出數(shù)據(jù)。

3、后臺(tái)獲取數(shù)據(jù)

a、servlet獲取數(shù)據(jù)

BufferedReader bufr = new BufferedReader(
 new InputStreamReader(request.getInputStream(),"UTF-8"));
 StringBuilder sBuilder = new StringBuilder("");
 String temp = "";
 while((temp = bufr.readLine()) != null){
  sBuilder.append(temp);
 }
 bufr.close();
 String json = sBuilder.toString();
 JSONObject json1 = JSONObject.fromObject(json);
 String sdate= json1.getString("sdate");//通過(guò)此方法獲取前端數(shù)據(jù)
 ...

b、springMvc Controller里面對(duì)應(yīng)的方法獲取數(shù)據(jù)

public JsonResult GetDepartment(int limit, int offset, string orderId, string SellerId,PortId,CardNumber,Success,maxrows,tradetype)
{
 ...
}

4、分頁(yè)(遇到問(wèn)題最多的)

使用分頁(yè),server端返回的數(shù)據(jù)必須包括rows和total,代碼如下:

...<br>gblst = SqlADO.getTradeList(sql,pageindex,maxrows);
JSONArray jsonData=new JSONArray();
 JSONObject jo=null;
 for (int i=0,len=gblst.size();i<len;i++)
 {
  TradeBean tb = gblst.get(i);
  if(tb==null)
  {
  continue;
  }
  jo=new JSONObject();
  jo.put("id", i+1);
  jo.put("liushuiid", tb.getLiushuiid());
  jo.put("price", String.format("%1.2f",tb.getPrice()/100.0));
  jo.put("mobilephone", tb.getMobilephone());
  jo.put("receivetime", ToolBox.getYMDHMS(tb.getReceivetime()));
  jo.put("tradetype", clsConst.TRADE_TYPE_DES[tb.getTradetype()]);
  jo.put("changestatus", (tb.getChangestatus()!=0)?"成功":"失敗");
  jo.put("sendstatus", (tb.getSendstatus()!=0)?"成功":"失敗");
  jo.put("bill_credit", String.format("%1.2f",tb.getBill_credit()/100.0));
   jo.put("changes",String.format("%1.2f",tb.getChanges()/100.0));
  jo.put("goodroadid", tb.getGoodroadid());
  jo.put("SmsContent", tb.getSmsContent());
  jo.put("orderid", tb.getOrderid());
  jo.put("goodsName", tb.getGoodsName());
  jo.put("inneridname", tb.getInneridname());
  jo.put("xmlstr", tb.getXmlstr());
  
  jsonData.add(jo);
 }
 int TotalCount=SqlADO.getTradeRowsCount(sql);
 JSONObject jsonObject=new JSONObject();
 jsonObject.put("rows", jsonData);//JSONArray
 jsonObject.put("total",TotalCount);//總記錄數(shù)
 out.print(jsonObject.toString()); <br>... 

 5、分頁(yè)界面內(nèi)容介紹

前端獲取分頁(yè)數(shù)據(jù),代碼如下:

...<br>oTableInit.queryParams = function (params) {
  var temp = { //這里的鍵的名字和控制器的變量名必須一直,這邊改動(dòng),控制器也需要改成一樣的
  limit: params.limit, //第幾條記錄
  offset: params.offset, //顯示一頁(yè)多少記錄
  sdate: $("#stratTime").val(),
 
  };
  return temp;
 };<br>...

后端獲取分頁(yè)數(shù)據(jù),代碼如下:

...<br>int pageindex=0;
int offset = ToolBox.filterInt(json1.getString("offset"));
int limit = ToolBox.filterInt(json1.getString("limit")); 
if(offset !=0){
 pageindex = offset/limit;
}
 pageindex+= 1;//第幾頁(yè)<br>...

 四、其他

bootstrap3 兼容IE8瀏覽器!查看文章:http://www.dbjr.com.cn/article/83366.htm

如果還沒(méi)有學(xué)習(xí)夠的話大家可以點(diǎn)擊這里進(jìn)行學(xué)習(xí),再為大家附一個(gè)精彩的專(zhuān)題:Bootstrap學(xué)習(xí)教程

以上就是本文的全部?jī)?nèi)容,希望能夠幫助大家更好的學(xué)習(xí)JS表格組件神器bootstrap table。

相關(guān)文章

最新評(píng)論