LoginSignup
1
0

VisualforceページのDatatableのスクロールバーの自前

Posted at

要件

VisualforceでのDatatableのスクロールバーの設定で、ヘッダーとボディーのずれがあります。
原因はヘッダーとボディーが別々のテーブルで、調整がずれある。

image.png

対応

Datatableのスクロールバーの自前する

ヘッダー固定


            table#templateSearchResultTbl thead th {
                visibility: visible;
                /* 縦スクロール時に固定する */
                position: sticky !important;
                top: -1px;
                /* tbody内のセルより手前に表示する */
                z-index: 1;
            }

            .mini-hospital{
                min-width: 120px !important;
            }
            

テーブルの外DivはOverflow:autoにする

            div#templateSearchResultTbl_wrapper>div>div[class^="col-sm-12"][class $="col-sm-12"] {
                overflow: auto;
                width: 40vh;
                min-width:300px;
                height: 40vh;
                padding-right:0px;
            }

datatableの初期化にスクロールの制御を外す

templateSearchResultTbl = $('#templateSearchResultTbl').DataTable({
                data: dataSet,
                autoWidth: true,
                columns: [
                    { title: "{!$Label.JP_TEXT_Parent_Number}" },
                    { title: "{!$Label.JP_TEXT_Inquiry_Name}" },
                    { title: "{!$Label.JP_TEXT_Hospital}", className:"mini-hospital"},
                    { title: "{!$Label.JP_TEXT_Dealer}"},
                    { title: "{!$Label.JP_TEXT_SalesRep}"},
                    { title: "{!$Label.JP_TEXT_CreatedName}" },
                    { title: "作成日時", className:"button-column2"},
                    { title: "{!$Label.JP_TEXT_Select}"},

                ],
                oLanguage: {
                    /* 日本語化設定 */
                    sLengthMenu : "表示 _MENU_ 件", // 表示行数欄(例 = 表示 10 件)
                    oPaginate : { // ページネーション欄
                        sNext : "次へ",
                        sPrevious : "前へ"
                    },
                    sInfo : "_TOTAL_ 件中 _START_件から_END_件 を表示しています", // 現在の表示欄(例 = 100 件中 20件から30件 を表示しています)
                    sSearch : "検索 ", // 検索欄(例 = 検索 --)
                    sZeroRecords : "表示するデータがありません", // 表示する行がない場合
                    sInfoEmpty : "0 件中 0件 を表示しています", // 行が表示されていない場合
                    sInfoFiltered : "全 _MAX_ 件から絞り込み" // 検索後に総件数を表示する場合
                },
                order: [[ 6, "desc" ]],
                aoColumnDefs: [
                    { bSortable: false, aTargets: [7] }
                ],
                info: false,
                searching: false,
                lengthChange: true,
                paging: true,
                retrieve: true,
                destroy:true
            });

結果

問題としてはスクロールバーがすこし外枠になっている
image.png

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0