数据表中的多个固定标头

时间:2013-07-01 15:55:04

标签: javascript jquery salesforce apex-code jquery-datatables

最近我的老板让我在salesforce中为datatables插件实现固定的header插件。

我的代码设计方式是每次单击搜索按钮时,我都有一个db的回调函数以及一个重新初始化数据表的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 );

  } 

1 个答案:

答案 0 :(得分:1)

k,这似乎是一个已知的bug。固定头的销毁功能之类的不可用性似乎包含在数据表的下一个FixedHeader插件版本中。基本上没有解决方法

当我在使用Salesforce时,很容易重新渲染部分VF页面,而无需重新加载整个页面,因此我最终在每次渲染时重建DataTable。这解决了这个问题。