首頁 >web前端 >js教程 >Bootstrap Table建置後台管理系統程式碼分享

Bootstrap Table建置後台管理系統程式碼分享

小云云
小云云原創
2018-02-07 14:13:351807瀏覽

Bootstrap Table是基於 Bootstrap 的 jQuery 表格插件,透過簡單的設置,就可以擁有強大的單選、多選、排序、分頁,以及編輯、匯出、過濾(擴充)等等的功能。本文主要和大家介紹Bootstrap Table快速完美搭建後台管理系統的方法,具有一定的參考價值,有興趣的小夥伴們可以參考一下,希望能幫助到大家。

現在做的一個app管理以及後台配置系統,需要針對不同的城市作相應的定制化的配置,對一些後台數據也做一些展示和操作,所以每一個模組基本上都會有表格的展現形式,這樣做的好處就是直覺方便操作。對於用什麼table插件,無疑就是bootstrap table了,功能強大文檔完善,並且我們專案裡也是基於bootstrap佈局的,所以就選擇了他,接下來就貼一些項目代碼來展示(僅供參考),自己也做一下筆記。

首先是用到了bootstrap的Tab來切換不同的表格用於展示,切換選單程式碼如下:


 <p class="report-count">被举报次数:${count}次</p>
  <ul class="report-btn nav nav-tabs" id="myTab" >
    <li class="pending active"><a href="#padding" onclick="freashTable(0)" data-toggle="tab">待处理:${stateCountList[0]}次</a><i class=""></i></li>
    <li class="success-report"><a href="#success-report" onclick="freashTable(1)" data-toggle="tab">举报成立:${stateCountList[1]}次</a></li>
    <li class="fail-report"><a href="#fail-report" onclick="freashTable(2)" data-toggle="tab">举报不成立:${stateCountList[2]}次</a></li>
  </ul>

相信對於bootstrap並不陌生,為每一個需要切換的標籤加上{data-toggle="tab"},並且增加錨點用於匹配到對應的切換的子內容{錨點:href="#padding" rel="external nofollow" } ,切換對應的字內容代碼如下:


<p class="table-view tab-content">
      <p class=" tab-pane fade in active" id="padding">
       <p class="table-header clear">
        <c:forEach items="${complainCount1}" varStatus="i" var="c" >
         <p>${c.complain_reason}:${c.count}次</p>
        </c:forEach>
       </p>
       <p class="line addStyle"></p>
       <p>
        <table class="table"></table>
       </p>
      </p>
      <p class="tab-pane fade" id="success-report">
       <p class="table-header clear">
        <c:forEach items="${complainCount2}" varStatus="i" var="c" >
         <p>${c.complain_reason}:${c.count}次</p>
        </c:forEach>
       </p>
       <p class="line addStyle"></p>
       <p>
        <table class="table"></table>
       </p>
      </p>
      <p class="tab-pane fade" id="fail-report">
       <p class="table-header clear">
        <c:forEach items="${complainCount3}" varStatus="i" var="c" >
         <p>${c.complain_reason}:${c.count}次</p>
        </c:forEach>
       </p>
       <p class="line addStyle"></p>
       <p>
        <table class="table"></table>
       </p>
      </p>
     </p>

 透過給每一個需要切換子內容元素設定對應上述錨點的id{#padding},並且不要忘了將外層容器加(tab-content),將子元素容器加class(tab-pane fade in active),有active的是預設選取的。每個子內容都有一個table元素,所以這裡就是我們需要的table,切換每個tab就會刷新顯示對應的table資料。這裡我們採用動態的生成table的方式來載入資料。


var $table=$(&#39;.table&#39;)
function initTable(index){
  $table.bootstrapTable({
  url: &#39;${basePath}/interacts/complain/getComplainList?pkid=&#39;+$("#pkid").val()+&#39;&state=&#39;+index, //请求数据地址url
  height: getHeight(), //获取行高
  striped: true, //设置为 true 会有隔行变色效果
  search: true, //为true会有搜索框
  showRefresh: true, //为true有刷新按钮
  showColumns: true, //是否显示 内容列下拉框
  minimumCountColumns: 2,//当列数小于此值时,将隐藏内容列下拉框
  clickToSelect: true, //点击行是checkbox或者rediobox选中
  detailView: true, //设置为 true 可以显示详细页面模式。table第一行会有+号,点击会出现更详细的该行信息
  detailFormatter: &#39;detailFormatter&#39;, //格式化详细页面模式的视图。
  pagination: true, //展示有分页
  paginationLoop: false, //循环分页
  sidePagination: &#39;server&#39;, //设置在哪里进行分页,可选值为 &#39;client&#39; 或者 &#39;server&#39;。设置 &#39;server&#39;时,必须设置 服务器数据地址(url)或者重写ajax方法
  silentSort: false, //设置为 false 将在点击分页按钮时,自动记住排序项。仅在 sidePagination设置为 server时生效19   escape: true, //转义HTML字符串,替换 &, <, >, ", `, 和 &#39; 字符.
  searchOnEnterKey: true, //设置为 true时,按回车触发搜索方法,否则自动触发搜索方法
  idField: &#39;systemId&#39;, //指定主键
  maintainSelected: true, //设置为 true 在点击分页按钮或搜索按钮时,将记住checkbox的选择项
  toolbar: &#39;#toolbar&#39;, //一个jQuery 选择器,指明自定义的toolbar 
  columns: [
    {field: &#39;complain_reason&#39;, title: &#39;举报类型&#39;,align: &#39;center&#39;},
    {field: &#39;nick_name&#39;, title: &#39;举报人&#39;,align: &#39;center&#39;},
    {field: &#39;create_time&#39;, title: &#39;举报时间&#39;,formatter:&#39;timeFormat&#39; },
    {field: &#39;complain_state&#39;, title: &#39;举报状态&#39;,formatter:&#39;stateFormat&#39;}
    {field: &#39;action&#39;, title: &#39;操作&#39;, align: &#39;center&#39;, formatter: &#39;actionFormatter&#39;, events: &#39;actionEvents&#39;, clickToSelect: false}
   ]
  });
}

以上就是初始化table的函數,傳index是為了切換時候請求不同的位址刷新不同的table,因為在每個tab切換選單都有onclick事件函數freashTable(index),table的所有用到的配置我都在上述程式碼中做了註釋,想看跟詳細的設定請看官網配置(http://bootstrap-table.wenzhixin.net.cn/zh-cn /documentation/)。 columns配置每一行,field是對應的每一列要顯示的字段key值,title對應的是每一列的頭部,formatter是格式化每一列的自定義函數,下面只展示時間格式化函數代碼:


function timeFormat(value,row,index){
  value = row.modifyTime==null?value:row.modifyTime;
 return new Date(parseInt(value)).toLocaleString().replace(/:\d{1,2}$/,&#39; &#39;);
 }

對應的field為action的那一行就是操作按鈕了,格式化操作按鈕程式碼如下:


function actionFormatter(value, row, index) {
 return [
  &#39;<a class="update" href="javascript:;" onclick="editdateAction(\&#39;&#39; + row.systemId + &#39;\&#39;)" data-toggle="tooltip" title="Edit"><i class="glyphicon glyphicon-edit"></i></a> &#39;,
  &#39;<a class="delete" href="javascript:;" onclick="deleteRowAction(\&#39;&#39;+row.systemId+&#39;\&#39;)" data-toggle="tooltip" title="Remove"><i class="glyphicon glyphicon-remove"></i></a>&#39;
 ].join(&#39;&#39;);
}

同時分頁bootstrap已經提供了完整的配置(包括每頁顯示的行數,分頁按鈕,總條數和總頁數等等)但是沒有跳到指定行,所以需要我們自己寫他的樣式定位到相應的分頁欄,不過他有​​相關的方法提供,

##selectPage就是跳到指定頁,我們可以自己系一個方法:


function goPage(){
  var page=$(&#39;#pageNum&#39;).val();
  $table.bootstrapTable(&#39;selectPage&#39;,page)
 }

在用其方法時候,要$table.bootstrapTable('selectPage',page)使用。

相關推薦:


使用React全家桶建構一個後台管理系統實例詳解

基於thinkphp的後台管理系統範本快速建置

Bootstrap Table快速建置後台管理系統

以上是Bootstrap Table建置後台管理系統程式碼分享的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn