ホームページ ウェブフロントエンド ブートストラップのチュートリアル BootStrapTable の動的テーブルに関する詳細なチュートリアル [コード付き]

BootStrapTable の動的テーブルに関する詳細なチュートリアル [コード付き]

Aug 20, 2019 pm 02:32 PM

BootStrapTable の動的テーブルに関する詳細なチュートリアル [コード付き]

この記事では、ブートストラップ テーブル プラグインを使用して動的テーブルを実装する方法を紹介します。

推奨チュートリアル: Bootstrap チュートリアル

## BootStrapTable (以下、BsTable) を構築するとき、列のパラメーターテーブル列の内容として保存されるため、返されたデータに基づいて列パラメータの内容を動的に生成することが必要です。これにより、動的テーブルが生成されます。

columns パラメーターの形式: 次のような

columns: {
    {
        field: 'Id',
        title: '编号',
    },{
        field: 'name',
        title: '名称',
    },{
        field: 'sex',
        title: '性别',
        //自定义方法
        formatter: function (value) {
            if (value == 1) {
                return '男';
            } else if (value == 2) {
                retuen '女';
            }
        }
    },
}
ログイン後にコピー

要件: ボタンをクリックして Ajax リクエストを送信し、リクエストによって返されたデータに基づいて動的テーブルを構築します。

ボタン構造: クリック イベントの設定

<button type="button" class="btn btn-primary" onclick="DataQuery.sqlExecute()">
    <i class="fa fa-check"></i> SQL语句执行
</button>
ログイン後にコピー

クリック イベントの書き込み: dataQuery.js (注: これは部分的に分析されます。

完全版はコード)

#1. HTML ページ要素の値を取得します

# これを実装するには 2 つのパラメータが必要なので、関数: SQL ステートメント (sql) 接続情報 (connectInfo) なので、最初にページから 2 つの要素の値を取得する必要があります。クラス セレクターは、対応する値を取得する要素を選択します。

var sql = $(&#39;#sql&#39;).val();
var connectInfo = $(&#39;#connectInfo&#39;).val();
ログイン後にコピー

2. ページのテーブル要素を選択し、Ajax リクエストを送信し、ページ上に BSTable

テーブル要素を構築します: beetl を使用します。タグ、再利用された HTML コードをコード タグの行に置き換えます。これは使いやすく、保守も簡単です。

<#table id="DataQueryTable"/>
ログイン後にコピー

2.1 Ajaxリクエストパラメータの設定

##パラメータtype#urlサーバーに送信される形式受信データの形式サーバーに送信されたデータリクエストが成功したときに呼び出されますリクエストが失敗したときに呼び出されます詳細コード:
$(&#39;#DataQueryTable&#39;).bootstrapTable({
    ajax: function (request) {
        $.ajax({
            type: "GET",
            url: Feng.ctxPath + "/dataQuery/list" + "/" + sql + "/" + connectInfo,
            contentType: "application/json;charset=utf-8",
            dataType: "json",
            json: &#39;callback&#39;,
            success: 见下文
            error: 见下文
    })
})
ログイン後にコピー
意味
リクエスト タイプ
リクエスト リンク アドレス# #contentType
dataType
data
success
error
2.2 ajax リクエストが成功し、動的ヘッダーが構築されます返された JSON データに基づいて

## 2.2.1 カスタム動的ヘッダー配列を初期化します

 //定义动态表头字段数组
    var dynamicHeader = [];
    //向数组中填入属性
    dynamicHeader.push({
        field: "state",
        check: true
    });
ログイン後にコピー
2.2.2 動的ヘッダーの生成
  //针对返回的json数据,遍历json数据的key集合
   for (var i = 0; i<(Object.keys(json[0])).length; i++) {
       //获取对应索引的value值,将获取的值设置到动态表头字段中。
       var property = (Object.keys(json[0]))[i];
       dynamicHeader.push({
           "title": property,
           "field": property,
           //显示是否显示隐藏
           switchable: true,
           //是否开启排序
           sortable: true
       });
   }
ログイン後にコピー

このコードはブラウザーで表示できますF12 Object.keys(json[0]) の特定のコンテンツ: リクエスト/テストをシミュレートします。

2.2.3 テーブルを構築します。テーブルを構築する前にテーブルを破棄する必要があります。そうでない場合は、最後にロードされたコンテンツが保持されます。

  $(&#39;#DataQueryTable&#39;).bootstrapTable(&#39;destroy&#39;).bootstrapTable({
       //得到的json数据,会根据columns参数进行对应赋值配置
       data: json,
       //Bstable工具导航条
       toolbar: &#39;#toolbar&#39;,
       //浏览器缓存,默认为true,设置为false避免页面刷新调用浏览器缓存
       cache: false,
       //是否显示行间隔色
       striped: true,
       //分页方式:client客户端分页,server服务端分页
       sidePagination: "client",
       //排序方式
       sortOrder: "desc",
       //每页记录行数
       pageSize: 25,
       //初始化加载第一页
       pageNumber: 1,
       //可供选择的每页行数
       pageList: "[25, 50, 100, All]",
       //是否显示切换按钮
       showToggle: true,
       //是否显示所有的列
       showColumns: true,
       //是否显示导出按钮(下篇文章将会提到)
       showExport: true,
       //导出数据类型(下篇文章将会提到)
       exportDataType: "basic",
       //是否显示分页
       pagination: true,
       //是否启用全匹配搜索,否则为模糊搜索
       strictSearch: true,
       //开启搜索
       search: true,
       //自定义所生成的动态表头放入,结合上述json数据,实现表格数据内容的构建
       columns: dynamicHeader
   });
 },
ログイン後にコピー

2.3 Ajax リクエストの失敗、ポップアップ ウィンドウでエラー メッセージが報告される、ページがリロードされるBootStrapTable の動的テーブルに関する詳細なチュートリアル [コード付き]

error: function () {
    alert("SQL查询错误,请输入正确的SQL语句!");
    location.reload();
}
ログイン後にコピー

完全な js コード

/**
 *  BsTable动态表格生成
 */
DataQuery.sqlExecute = function (){

    var sql = $(&#39;#sql&#39;).val();
    var connectInfo = $(&#39;#connectInfo&#39;).val();

    $(&#39;#DataQueryTable&#39;).bootstrapTable({
        ajax: function (request) {
            $.ajax({
                type: "GET",
                url: Feng.ctxPath + "/dataQuery/list" + "/" + sql + "/" + connectInfo,
                contentType: "application/json;charset=utf-8",
                dataType: "json",
                json: &#39;callback&#39;,
                success: function (json) {

                    var dynamicHeader = [];
                    dynamicHeader.push({
                        field: "state",
                        check: true
                    });

                    for (var i = 0; i<(Object.keys(json[0])).length; i++) {
                        var property = (Object.keys(json[0]))[i];
                        //console.log(property);
                        dynamicHeader.push({
                            "title": property,
                            "field": property,
                            switchable: true,
                            sortable: true
                        });
                    }

                    //console.log(Object.keys(json[0]));

                    $(&#39;#DataQueryTable&#39;).bootstrapTable(&#39;destroy&#39;).bootstrapTable({
                        data: json,
                        toolbar: &#39;#toolbar&#39;,
                        cache: false,
                        striped: true,
                        sidePagination: "client",
                        sortOrder: "desc",
                        pageSize: 25,
                        pageNumber: 1,
                        pageList: "[25, 50, 100, All]",
                        showToggle: true,
                        showColumns: true,
                        showExport: true,
                        exportDataType: "basic",
                        pagination: true,
                        strictSearch: true,
                        search: true,
                        columns: dynamicHeader
                    });
                },
                error: function () {
                    alert("SQL查询错误,请输入正确的SQL语句!");
                    location.reload();
                }
            });
        }
    });
};
ログイン後にコピー
3. 動的テーブル生成結果のテスト

3.1 テストは 2 つのパートに分かれており、まずリクエストで取得した json データを取得し、シミュレーションを行います。 100 個のデータを取得するリクエスト

@RequestMapping(value = "/test")
    @ResponseBody
    public Object test(){
        return iDataQueryService.windQuery("SELECT TOP 100 [OBJECT_ID]\n" +
                "      ,[S_INFO_WINDCODE]\n" +
                "      ,[S_CON_WINDCODE]\n" +
                "      ,[S_CON_INDATE]\n" +
                "      ,[S_CON_OUTDATE]\n" +
                "      ,[CUR_SIGN]\n" +
                "      ,[OPDATE]\n" +
                "      ,[OPMODE]\n" +
                "  FROM [WIND].[db_datareader].[AINDEXMEMBERS]");
    }
ログイン後にコピー
# 3.2 リクエストによって返された json データを表示

3.3 動的テーブル生成のテスト

上記のリクエストは正常にデータを返すことができますが、ajax リクエストを通じて構築した動的 BSTable はどうなるでしょうか? BootStrapTable の動的テーブルに関する詳細なチュートリアル [コード付き] リクエストは SQL ステートメント/リンク情報であり、ajax リクエストは上記のリクエストと一致する json データを返します。

動的テーブルの生成ステータスを確認してください:

BootStrapTable の動的テーブルに関する詳細なチュートリアル [コード付き]

ビンゴ、それでこれまでのところ、BootStrapTable 動的テーブル関数が実装されています。

以上がBootStrapTable の動的テーブルに関する詳細なチュートリアル [コード付き]の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

最新のブートストラップリリースと更新を最新の状態に保つにはどうすればよいですか? 最新のブートストラップリリースと更新を最新の状態に保つにはどうすればよいですか? Mar 14, 2025 pm 07:40 PM

この記事では、ブートストラップリリースで更新された状態を維持するための戦略、公式ドキュメント、統合のベストプラクティス、およびディスカッションのコミュニティリソースへのアクセスについて説明します。

ブートストラップ画像の中央でFlexBoxを使用する必要がありますか? ブートストラップ画像の中央でFlexBoxを使用する必要がありますか? Apr 07, 2025 am 09:06 AM

ブートストラップの写真を集中させる方法はたくさんあり、FlexBoxを使用する必要はありません。水平にのみ中心にする必要がある場合、テキスト中心のクラスで十分です。垂直または複数の要素を中央に配置する必要がある場合、FlexBoxまたはグリッドがより適しています。 FlexBoxは互換性が低く、複雑さを高める可能性がありますが、グリッドはより強力で、学習コストが高くなります。メソッドを選択するときは、長所と短所を比較検討し、ニーズと好みに応じて最も適切な方法を選択する必要があります。

Bootstrapのコンポーネントの外観と動作をカスタマイズするにはどうすればよいですか? Bootstrapのコンポーネントの外観と動作をカスタマイズするにはどうすればよいですか? Mar 18, 2025 pm 01:06 PM

記事では、CSS変数、​​SASS、カスタムCSS、JavaScript、およびコンポーネントの変更を使用して、ブートストラップの外観と動作のカスタマイズについて説明します。また、スタイルを変更し、デバイス全体の応答性を確保するためのベストプラクティスをカバーしています。

ブートストラップの垂直センタリングを行う方法 ブートストラップの垂直センタリングを行う方法 Apr 07, 2025 pm 03:21 PM

ブートストラップを使用して垂直センタリングを実装します。FlexBoxメソッド:D-Flex、Justify-Content-Center、Align-Items-Centerクラスを使用して、FlexBoxコンテナに要素を配置します。 ALIGN-ITEMS-CENTERクラス方法:FlexBoxをサポートしていないブラウザの場合、親要素の高さが定義されている場合、Align-Items-Centerクラスを使用します。

ブートストラップ検索バーを取得する方法 ブートストラップ検索バーを取得する方法 Apr 07, 2025 pm 03:33 PM

ブートストラップを使用して検索バーの値を取得する方法:検索バーのIDまたは名前を決定します。 JavaScriptを使用してDOM要素を取得します。要素の値を取得します。必要なアクションを実行します。

コアフレームワークファイルを変更せずに、ブートストラップのスタイルをオーバーライドするにはどうすればよいですか? コアフレームワークファイルを変更せずに、ブートストラップのスタイルをオーバーライドするにはどうすればよいですか? Mar 14, 2025 pm 07:44 PM

この記事では、カスタムCSSを使用してBootstrapのスタイルをオーバーライドする方法について説明します。特異性を使用して、組織のベストプラクティスを使用して、個別のファイルの作成に焦点を当てています。

ブートストラップWebサイトをアクセスできるようにするにはどうすればよいですか(A11Y)? ブートストラップWebサイトをアクセスできるようにするにはどうすればよいですか(A11Y)? Mar 14, 2025 pm 07:36 PM

この記事では、WCAG標準を順守し、セマンティックHTMLを使用し、適切なコントラストを確保し、キーボードナビゲーションを有効にし、ARIAの実装を行い、定期的な監査を実施することにより、Bootstrap Webサイトをアクセスできるようにすることについて説明します。

Bootstrapのグリッドシステムを使用して、さまざまな画面サイズのレスポンシブレイアウトを作成するにはどうすればよいですか? Bootstrapのグリッドシステムを使用して、さまざまな画面サイズのレスポンシブレイアウトを作成するにはどうすればよいですか? Mar 14, 2025 pm 07:43 PM

記事では、デバイス間のレスポンシブレイアウトのためにBootstrapのグリッドシステムを使用し、構造、カスタマイズ、テストツールの詳細について説明します。

See all articles