1

最近、上司から、salesforce に datatables プラグイン用の固定ヘッダー プラグインを実装するように依頼されました。

私のコードの設計方法は、検索ボタンがクリックされるたびに、データベースへのコールバック関数と、データ テーブルを再初期化する oncomplete 関数があることです。

固定ヘッダーのサンプル コードを見て、関数の呼び出しをnew FixedHeader(oTable);初期化ブロック内に配置しました。ヘッダーは毎回再初期化されるのではなく、何度も作成されます。したがって、呼び出しごとに、新しいフローティングヘッダーと、間違った場所にある古いヘッダーもあります。これを変更するにはどうすればよいですか?

function Kudos()
{
    oTable = $('.datatable').dataTable({
                "iDisplayLength": 100,
                "sDom": '<C><"H"T><"clear"><"H">t<"F"ip>',
                 "bRetrieve": true,
                 "aoColumnDefs": [ {
                 "aTargets": [3,4,5,6,7,8,9,10],
                 "fnCreatedCell": function (nTd, sData, oData, iRow, iCol) {
                    if ( sData < "0" ) {
                      $(nTd).css('color', 'red')
                      $(nTd).css('font-weight', 'bold')
                    }
                    }
                    } ],
                "oTableTools": 
                {
                    "sSwfPath": "{!$Resource.SWF_File}",
                    "aButtons": [ 
                    {
                        "sExtends": "csv",
                        "sFileName": "PortFolio.csv",
                        "sButtonText":"Export"

                    }, "print" ]
                },
                "oColVis": 
                {
                    "activate": "mouseover"
                },
                "bAutoWidth": false,
                "bJQueryUI": true, 
                "sPaginationType": "full_numbers",
                "aaSorting": [[ 2, "asc" ]] ,
                "bLengthChange": false, 
                "bFilter": true,
                 "aoColumns": [
                  { "sWidth": "6%" },
                   {"sWidth": "6%"},
                  {"sWidth": "6%"},
              { "sWidth": "6%" },
             {"sWidth": "6%"},
              {"sWidth": "6%"},
                     { "sWidth": "6%" },
                     {"sWidth": "6%"},
                     {"sWidth": "6%"},
                       { "sWidth": "6%" },
                   {"sWidth": "6%"},
                  {"sWidth": "6%"},
                 { "sWidth": "6%" },
                   {"sWidth": "6%"},
                  {"sWidth": "6%"}
                           ]
                      });


               new FixedHeader( oTable );

  } 
4

1 に答える 1

1

k、これは既知のバグのようです。固定ヘッダーの破棄機能のようなものが利用できないことは、データテーブルの FixedHeader プラグインの次のリリースに含まれるように見えます。基本的に固定のATMはありません

私はSalesforceで作業しているので、ページ全体をリロードせずにVFページの一部を再レンダリングするのは非常に簡単なので、レンダリングごとにDataTableを再構築することになりました。これで問題は解決しました。

于 2013-07-04T10:59:04.160 に答える