使用bootstrap-table簡化CRUD

1. 引入bootstrap-table資源包, 頁首引用css, 頁腳引用jsjavascript

2. table 參數說明css

         data-toggle="table" 
         data-toolbar="#toolbar" //指定關聯的toolbar div id
         data-show-refresh="true"
         data-show-toggle="true"
         data-show-columns="true"
         data-query-params="queryParams" // 對於toolbar中的input, 須要在這裏加入參數
         data-sort-name="name" //與th中的 data-field匹配, 默認以哪個排列
         data-sort-field="1" // 遠程請求時, 實際用的sort參數值
         data-sort-order="desc" // 默認的排序
         data-side-pagination="server" 
         data-pagination="true" 
         data-query-params-type="limit" //使用簡化分頁排序參數
         data-page-list="[5, 10, 20, 50, 100, 200]"
         data-url="/admin/sys/adminuser/data/list.html" // 數據請求地址

3. th參數說明html

data-field="createdAt" // 顯示時使用的字段
data-sort-field="0" // 遠程請求時使用的sort參數值
data-sortable="true" // 是否容許排序

4. 行點擊事件html5

    window.op_events = {
      'click .op_remove': function (event, value, row, index) {
        alert('You click like action, row: ' + JSON.stringify(row));
        $table.bootstrapTable('refresh');
      }
    };

 

完整頁面代碼java

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
  <title></title>
  <!-- Bootstrap -->
  <link href="/admin/res/bootstrap/css/bootstrap.min.css" rel="stylesheet">
  <link href="/admin/res/bootstrap-notify/css/bootstrap-notify.css" rel="stylesheet">
  <link rel="stylesheet" href="/admin/res/bootstrap-table/bootstrap-table.min.css" type="text/css" media="screen, projection">
  <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
  <!-- WARNING: Respond.js doesn't work if you view the page via utilities:// -->
  <!--[if lt IE 9]>
  <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
  <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
  <![endif]-->
  <!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
  <script src="/admin/res/jquery/1.11.3/jquery.min.js"></script>
</head>
<body>  <!-- Static navbar -->
  <nav class="navbar navbar-default navbar-static-top">
    <div class="container">
      <div class="navbar-header">
        <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar"
                aria-expanded="false" aria-controls="navbar">
          <span class="sr-only">Toggle navigation</span>
          <span class="icon-bar"></span>
          <span class="icon-bar"></span>
          <span class="icon-bar"></span>
        </button>
        <a class="navbar-brand" href="/admin">FTChinese 財富</a>
      </div>
      <div id="navbar" class="navbar-collapse collapse">
        <ul class="nav navbar-nav">
          <li class="dropdown">
            <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">資產<span class="caret"></span></a>
            <ul class="dropdown-menu">
              <li><a href="/admin/asset/debt/">債權</a></li><li><a href="/admin/asset/fund/">基金</a></li><li><a href="/admin/asset/product/">產品</a></li>
            </ul>
          </li>
          
          <li class="dropdown">
            <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">投資<span class="caret"></span></a>
            <ul class="dropdown-menu">
              <li><a href="/admin/invest/user">用戶</a></li>
            </ul>
          </li>
          
          <li class="dropdown active">
            <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">系統<span class="caret"></span></a>
            <ul class="dropdown-menu">
              <li><a href="/admin/sys/adminuser/">用戶</a></li><li><a href="/admin/sys/config/">配置</a></li><li><a href="/admin/sys/menu/">菜單</a></li><li><a href="/admin/sys/auth/">權限</a></li><li><a href="/admin/sys/role/">角色</a></li>
            </ul>
          </li>
                  </ul>
        <ul class="nav navbar-nav navbar-right">
          <li><a href="/admin/logout.html">[Admin]退出</a></li>
        </ul>
      </div>
      <!--/.nav-collapse -->
    </div>
  </nav>
<style>
  .w70 {width: 70px !important;}
</style>
<div class="container">
  <h1>管理員</h1>
  <div id="toolbar">
    <div class="form-inline" role="form">
      <div class="form-group">
        <input name="name" class="form-control" type="text" placeholder="Search">
      </div>
      <button id="ok" type="submit" class="btn btn-default">OK</button>
    </div>
  </div>
  <table id="table"
         data-toggle="table"
         data-toolbar="#toolbar"
         data-show-refresh="true"
         data-show-toggle="true"
         data-show-columns="true"
         data-query-params="queryParams"
         data-sort-name="name"
         data-sort-field="1"
         data-sort-order="desc"
         data-side-pagination="server"
         data-pagination="true"
         data-query-params-type="limit"
         data-page-list="[5, 10, 20, 50, 100, 200]"
         data-url="/admin/sys/adminuser/data/list.html">
    <thead>
    <tr>
      <th data-field="name" data-sort-field="1" data-sortable="true">用戶名</th>
      <th data-field="email">Email</th>
      <th data-field="role">角色</th>
      <th data-field="createdAt" data-sort-field="0" data-sortable="true">建立時間</th>
      <th data-field="id" data-formatter="op_formatter" data-events="op_events">操做</th>
    </tr>
    </thead>
  </table>

  <script>
    var $table = $('#table');

    $('#ok').click(function () {
      $table.bootstrapTable('refresh');
    });

    function queryParams(params) {
      $('#toolbar').find('input[name]').each(function () {
        params[$(this).attr('name')] = $(this).val();
      });
      return params;
    }

    function op_formatter(value, row) {
      return [
        '<a href="/admin/sys/adminuser/edit.html?id=',
        row.id,
        '">編輯</a> ',
        '<a class="op_remove" href="javascript:void(0)" title="Remove">',
        '刪除',
        '</a>  '
      ].join('');
    }

    function getHeight() {
      return $(window).height() - $('h1').outerHeight(true) - 70;
    }

    window.op_events = {
      'click .op_remove': function (event, value, row, index) {
        alert('You click like action, row: ' + JSON.stringify(row));
        $table.bootstrapTable('refresh');
      }
    };

    $(window).resize(function () {
      $table.bootstrapTable('resetView', {
        height: getHeight()
      });
    });

    $(function () {
      $table.bootstrapTable('resetView', {
        height: getHeight()
      });
    });
  </script>

</div>


  <div class='notifications bottom-right' id='bs-notify'></div>
  <!-- Include all compiled plugins (below), or include individual files as needed -->
  <script src="/admin/res/bootstrap/js/bootstrap.min.js"></script>
  <script src="/admin/res/bootstrap-notify/js/bootstrap-notify.js"></script>
  <script src="/admin/res/bootstrap-table/bootstrap-table.js"></script>
</body>
</html>
相關文章
相關標籤/搜索