我有一个显示两个数据表的应用程序。两个表都使用按钮扩展来支持列可见性对话框。 第二个表有第一列没有标题。在列可见性对话框中,按钮应该有一个标题,这就是我重写colvis扩展的columnText函数的原因
var buttons= [{
extend: 'colvis',
postfixButtons: ['colvisRestore'],
collectionLayout: 'fixed three-column'
}];
if("secondTable" === tableName) {
buttons[0]['columnText'] = function (dt, idx, title) {
if (idx === 0) {
return "firstColumnTitle";
} else {
return title;
}
};
//add default buttons to buttons
buttons[0]['buttons'] = [{extend: 'columnsToggle'}];
//add one extra button to the collection
buttons[0]['buttons'].push([
{
extend: 'columnToggle',
text: 'HR',
columns: [1, 2]
}]);
}
DataTable({
rowId: 'id',
ajax: 'content.do',
buttons: buttons
});
我希望只为第二个表调用columntext函数
如果我添加按钮,则不再调用columnText
函数。为什么呢?
答案 0 :(得分:0)
感谢@davidkonrad和@Adelin的评论。如果找到原因。
而不是将columnText函数赋值给colvis扩展,我需要将它分配给columnsToggle Extension里面。
if("secondTable" === tableName) {
//add default buttons to buttons
buttons[0]['buttons'] = [{
extend: 'columnsToggle',
columnText: function (dt, idx, title) {
if (idx === 0) {
return "firstColumnTitle";
} else {
return title;
}
}}];
//add one extra button to the collection
buttons[0]['buttons'].push([
{
extend: 'columnToggle',
text: 'HR',
columns: [1, 2]
}]);
}