ホームページ  >  記事  >  ウェブフロントエンド  >  Bootstrap Table はバックエンド管理システムを迅速に構築します

Bootstrap Table はバックエンド管理システムを迅速に構築します

PHPz
PHPzオリジナル
2018-02-05 10:42:462668ブラウズ

Bootstrap TableはBootstrapをベースにしたjQueryテーブルプラグインで、簡単な設定で単一選択、複数選択、並べ替え、ページング、編集、エクスポート、フィルタリング(展開)などの強力な機能を実現できます。この記事では主に、Bootstrap テーブルを使用してバックエンド管理システムを迅速かつ完璧に構築する方法を詳しく紹介します。興味のある方は、Bootstrap チュートリアル を参照してください。

さまざまな都市に対応するカスタマイズされた構成を作成し、一部の背景データの表示と操作も実行するため、各モジュールは基本的にテーブル表示フォームを持ちます。これの利点は、直感的で操作が簡単であることです。どのテーブル プラグインを使用するかについては、間違いなくブートストラップ テーブルです。強力な機能と完全なドキュメントがあり、私たちのプロジェクトもブートストラップ レイアウトに基づいているため、これを選択しました。次に、それを示すためにいくつかのプロジェクト コードを投稿します。 (参考用のみ)。

まず、ブートストラップのタブは、表示する異なるテーブルを切り替えるために使用されます。切り替えメニューのコードは次のとおりです:


 <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>

必要な各ラベルに {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) を追加することを忘れないでください。サブ要素コンテナにクラス (タブペイン フェードイン アクティブ) を追加すると、アクティブなクラスがデフォルトで選択されます。各サブコンテンツにはテーブル要素があり、各タブを切り替えると、対応するテーブル データが更新され、表示されます。ここでは、テーブルを動的に生成してデータをロードします。


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}
   ]
  });
}

上記は、各タブ切り替えメニューにonclickイベント関数refreshTable(index)があるため、切り替え時に異なるテーブルを更新するためにインデックスを渡す関数です。すべてのテーブル関数で使用される構成を上記のコードにコメントしました。詳細な構成を確認したい場合は、公式 Web サイトの構成 (http://bootstrap-table.wenzhixin.net.cn/zh-cn/) を参照してください。ドキュメンテーション/)。列は各行を構成します。フィールドは各列に表示される対応するフィールド キー値です。タイトルは各列のヘッダーに対応します。フォーマッタは各列をフォーマットするカスタム関数です。時刻フォーマット関数コードのみを以下に示します:


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

対応するフィールドが 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;);
}

同時に、ページング ブートストラップにより、完全な設定 (表示される行数を含む) が提供されます。各ページ、ページング ボタン、項目の合計数、ページの合計数など) ですが、指定された行へのジャンプはないため、対応するページング列を見つけるために独自のスタイルを記述する必要がありますが、関連するメソッドが提供されています。 ,

selectPage は指定されたページにジャンプするためのもので、自分でメソッドを作成できます:


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

そのメソッドを使用するときは、$table.bootstrapTable('selectPage',page) を使用します。

関連する推奨事項:

React Family Bucket を使用してバックエンド管理システムの例を構築する方法の詳細な説明

thinkphp に基づいてバックエンド管理システム テンプレートをすばやく構築する

javascript - バックエンド管理システム開発におけるいくつかの問題

以上がBootstrap Table はバックエンド管理システムを迅速に構築しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。