ホームページ >ウェブフロントエンド >フロントエンドQ&A >ブートストラップはどのテーブル プラグインを使用しますか?

ブートストラップはどのテーブル プラグインを使用しますか?

青灯夜游
青灯夜游オリジナル
2021-11-11 14:07:292048ブラウズ

Bootstrap では、「Bootstrap-Table」テーブル プラグインを使用できます。 「Bootstrap-Table」はBootstrapをベースにしたjQueryテーブルプラグインで、簡単な設定で単一選択、複数選択、ソート、ページング、編集、エクスポート、フィルタリングなどの強力な機能を実現します。

ブートストラップはどのテーブル プラグインを使用しますか?

このチュートリアルの動作環境: Windows 7 システム、ブートストラップ バージョン 3.3.7、DELL G3 コンピューター

「ブートストラップ テーブル」 table プラグインはブートストラップに使用できます。

Bootstrap tableはBootstrapをベースにしたjQueryテーブルプラグインで、機能が比較的充実しており、非同期データの取得、編集、ソートなどの一連の機能を実現できます。必要なのはいくつかの簡単な設定のみで、完全に機能するオンライン フォームです。

公式 Web サイトのアドレス: http://bootstrap-table.wenzhixin.net.cn/zh-cn/

Github アドレス: https://github.com/wenzhixin/ bootstrap -table

中国語ドキュメント: http://bootstrap-table.wenzhixin.net.cn/zh-cn/documentation/

主な機能

  • Bootstrap 3 および Bootstrap 2 をサポート

  • アダプティブ インターフェイス

  • 固定ヘッダー

  • 非常に豊富な設定パラメータ

  • タグを通じて直接使用

  • #列の表示/非表示

  • #表示/hide header
  • #AJAX を介して JSON 形式でデータを取得
  • #並べ替えのサポート

  • テーブルのフォーマット

  • #単一または複数の選択をサポート

  • 強力なページング機能

  • カード ビューをサポート

  • #複数の言語をサポート
  • サポートプラグイン
  • 利点
  • 低い学習コスト、シンプルな構成、完全なドキュメント

    Bootstrapとのシームレスな接続、一貫した全体的なスタイル、簡単な二次開発
  • 現役開発者の皆様、Github での定期メンテナンス
  • Bootstrap Table の導入
  • Bootstrap Table の導入には、大きく分けて次の 2 つの方法があります。

1. ソースコードを直接ダウンロードしてプロジェクトに追加します。

Bootstrap テーブルは Bootstrap のコンポーネントであるため、Bootstrap に依存するため、最初に Bootstrap への参照を追加する必要があります。 Bootstrap パッケージは http://v3.bootcss.com/ で直接見つかります。バージョン 4 のプレビュー バージョンがリリースされましたが、比較的安定した Bootstrap3、最新の 3.3.5 を使用することをお勧めします。次に、Bootstrap Table パッケージがあります。これはオープン ソースなので、ソース コード https://github.com/wenzhixin/bootstrap-table に直接アクセスして、git down できます。次に、これら 2 つのパッケージをそれぞれプロジェクトに追加します。

2. 魔法の Nuget を使用します

Nuget を開いてこれら 2 つのパッケージを検索します

私たちは直接それをインストールしてください。

Bootstrap Table のバージョンは実際には 0.4 ですが、これは不正すぎます。したがって、ブロガーは、Bootstrap Table パッケージをソース コードから直接ダウンロードする必要があると提案しています。 Bootstrap Tableの最新バージョンは1.9.0のようです。

コードの詳細説明

もちろん、コンポーネントを参照してしまえば使い方は簡単ですが、細かい部分で対処が必要な部分が多いので、詳細については後ほど説明します。まずは使い方を見てみましょう。

1. cshtml ページ内の関連コンポーネントを参照し、空のテーブルを定義します。

@{
    Layout = null;
}
<!DOCTYPE html>
<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>BootStrap Table使用</title>
    @*1、Jquery组件引用*@
    <script src="~/Scripts/jquery-1.10.2.js"></script>

    @*2、bootstrap组件引用*@
    <script src="~/Content/bootstrap/bootstrap.js"></script>
    <link href="~/Content/bootstrap/bootstrap.css" rel="stylesheet" />
    
    @*3、bootstrap table组件以及中文包的引用*@
    <script src="~/Content/bootstrap-table/bootstrap-table.js"></script>
    <link href="~/Content/bootstrap-table/bootstrap-table.css" rel="stylesheet" />
    <script src="~/Content/bootstrap-table/locale/bootstrap-table-zh-CN.js"></script>
    
    @*4、页面Js文件的引用*@
    <script src="~/Scripts/Home/Index.js"></script>
</head>
<body>
    <div class="panel-body" style="padding-bottom:0px;">
        <div class="panel panel-default">
            <div class="panel-heading">查询条件</div>
            <div class="panel-body">
                <form id="formSearch" class="form-horizontal">
                    <div class="form-group" style="margin-top:15px">
                        <label class="control-label col-sm-1" for="txt_search_departmentname">部门名称</label>
                        <div class="col-sm-3">
                            <input type="text" class="form-control" id="txt_search_departmentname">
                        </div>
                        <label class="control-label col-sm-1" for="txt_search_statu">状态</label>
                        <div class="col-sm-3">
                            <input type="text" class="form-control" id="txt_search_statu">
                        </div>
                        <div class="col-sm-4" style="text-align:left;">
                            <button type="button" style="margin-left:50px" id="btn_query" class="btn btn-primary">查询</button>
                        </div>
                    </div>
                </form>
            </div>
        </div>       

        <div id="toolbar" class="btn-group">
            <button id="btn_add" type="button" class="btn btn-default">
                <span class="glyphicon glyphicon-plus" aria-hidden="true"></span>新增
            </button>
            <button id="btn_edit" type="button" class="btn btn-default">
                <span class="glyphicon glyphicon-pencil" aria-hidden="true"></span>修改
            </button>
            <button id="btn_delete" type="button" class="btn btn-default">
                <span class="glyphicon glyphicon-remove" aria-hidden="true"></span>删除
            </button>
        </div>
        <table id="tb_departments"></table>
    </div>
</body>
</html>

必要なファイルを導入した後、最も重要なことは、上記の 585686db36453289477f793758309adcf16b1740fad44fb09bfe928bcc527e08 のように空のテーブルを定義することです。もちろん、Bootstrap table にも簡単な使い方が用意されており、table タグに「data-...」などの関連する属性を直接定義できるので、js に登録する必要がありません。この使い方はシンプルですが、使いやすいわけではなく、柔軟性がありすぎて親子テーブルなどの高度な使い方に遭遇すると扱いにくいため、今でもテーブルコンポーネントをjsで初期化して使用しています。

2. Js の初期化

$(function () {

    //1.初始化Table
    var oTable = new TableInit();
    oTable.Init();

    //2.初始化Button的点击事件
    var oButtonInit = new ButtonInit();
    oButtonInit.Init();

});


var TableInit = function () {
    var oTableInit = new Object();
    //初始化Table
    oTableInit.Init = function () {
        $(&#39;#tb_departments&#39;).bootstrapTable({
            url: &#39;/Home/GetDepartment&#39;,         //请求后台的URL(*)
            method: &#39;get&#39;,                      //请求方式(*)
            toolbar: &#39;#toolbar&#39;,                //工具按钮用哪个容器
            striped: true,                      //是否显示行间隔色
            cache: false,                       //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)
            pagination: true,                   //是否显示分页(*)
            sortable: false,                     //是否启用排序
            sortOrder: "asc",                   //排序方式
            queryParams: oTableInit.queryParams,//传递参数(*)
            sidePagination: "server",           //分页方式:client客户端分页,server服务端分页(*)
            pageNumber:1,                       //初始化加载第一页,默认第一页
            pageSize: 10,                       //每页的记录行数(*)
            pageList: [10, 25, 50, 100],        //可供选择的每页的行数(*)
            search: true,                       //是否显示表格搜索,此搜索是客户端搜索,不会进服务端,所以,个人感觉意义不大
            strictSearch: true,
            showColumns: true,                  //是否显示所有的列
            showRefresh: true,                  //是否显示刷新按钮
            minimumCountColumns: 2,             //最少允许的列数
            clickToSelect: true,                //是否启用点击选中行
            height: 500,                        //行高,如果没有设置height属性,表格自动根据记录条数觉得表格高度
            uniqueId: "ID",                     //每一行的唯一标识,一般为主键列
            showToggle:true,                    //是否显示详细视图和列表视图的切换按钮
            cardView: false,                    //是否显示详细视图
            detailView: false,                   //是否显示父子表
            columns: [{
                checkbox: true
            }, {
                field: &#39;Name&#39;,
                title: &#39;部门名称&#39;
            }, {
                field: &#39;ParentName&#39;,
                title: &#39;上级部门&#39;
            }, {
                field: &#39;Level&#39;,
                title: &#39;部门级别&#39;
            }, {
                field: &#39;Desc&#39;,
                title: &#39;描述&#39;
            }, ]
        });
    };

    //得到查询的参数
    oTableInit.queryParams = function (params) {
        var temp = {   //这里的键的名字和控制器的变量名必须一直,这边改动,控制器也需要改成一样的
            limit: params.limit,   //页面大小
            offset: params.offset,  //页码
            departmentname: $("#txt_search_departmentname").val(),
            statu: $("#txt_search_statu").val()
        };
        return temp;
    };
    return oTableInit;
};


var ButtonInit = function () {
    var oInit = new Object();
    var postdata = {};

    oInit.Init = function () {
        //初始化页面上面的按钮事件
    };

    return oInit;
};

テーブルの初期化も非常に簡単で、関連するパラメーターを定義するだけです。

ブロガーが重要だと考えるパラメーターの一部は上記でコメントされており、ブロガーはテーブルを初期化するために必要ないくつかのパラメーターも (*) でマークしています。テーブルにもページ要件が多すぎる場合は、直接必要なパラメータを指定して解決します。 同様に、列の並べ替え、配置、幅など、実際には

columns パラメーターに設定する必要があるパラメーターが多数あります。これらのブロガーは、これは比較的単純で、テーブルの機能は必要なく、API を参照するだけで実行できると考えています。

3、在Controller里面对应的方法

public JsonResult GetDepartment(int limit, int offset, string departmentname, string statu)
        {
            var lstRes = new List<Department>();
            for (var i = 0; i < 50; i++)
            {
                var oModel = new Department();
                oModel.ID = Guid.NewGuid().ToString();
                oModel.Name = "销售部" + i ;
                oModel.Level = i.ToString();
                oModel.Desc = "暂无描述信息";
                lstRes.Add(oModel);
            }

            var total = lstRes.Count;
            var rows = lstRes.Skip(offset).Take(limit).ToList();
            return Json(new { total = total, rows = rows }, JsonRequestBehavior.AllowGet);
        }

这里有一点需要注意:如果是服务端分页,返回的结果必须包含total、rows两个参数。漏写或错写都会导致表格无法显示数据。相反,如果是客户端分页,这里要返回一个集合对象到前端。

4、效果及说明

还是贴几张效果图出来:

推荐学习:《bootstrap使用教程

以上がブートストラップはどのテーブル プラグインを使用しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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