我想爲我的jQuery DataTable使用Column Filter插件。該表的HTML很簡單:如何爲動態生成的表填充table.DataTable.fnSettings.aoFooter?
...和所有內容,包括標題文字是通過代碼推:
oTable = $("#something").dataTable({
...
aoColumns: [
{ sTitle: 'ID', sWidth: '5%', mData: 0 },
{ sTitle: 'Subject', sName: 'on_what', mData: 1 },
{ sTitle: 'Action', sName: 'audit_type', mData: 2 },
etc...
],
...
});
當我嘗試激活列過濾器,例如:
$('#something').dataTable().columnFilter({
aoColumns: [
null,
{
type: "select",
values: ['A', 'B', 'C', 'D', 'E']
},
{
type: "select",
values: ['1', '2', '3']
},
etc...
]
});
...什麼也沒有出現。我已經完成了代碼,調試到控制檯,問題似乎是表的fnSettings()。aoFooter未被填充。列過濾器代碼查找該過濾器以便將過濾器添加到表格的底部,但是當它查看我的表格時,除了空數組之外沒有其他內容。我知道代碼正在執行,如果我分配aoFooter = aoHeader,那麼過濾器會顯示在標題中,所以當代碼出現在某處時,代碼就可以正常工作。
我也嘗試從控制檯運行列過濾器代碼,無濟於事,即使它追加<tfoot><tr><th></th>...</tr></tfoot>
它(我有點懷疑在我嘗試它之前懷疑不會工作)。我也嘗試過諸如oTable.dataTable().fnSettings().aoFooter = [{},{},{},{},{},{}];
之類的東西,並沒有得到任何好處。我也試過這個:
for (i = 0; i < 6; i++)
oTable.dataTable().fnSettings().aoFooter[i] = $('<td></td>');
所以我的問題似乎是如何有效地推送內容到aoFooter。有沒有人有任何想法?