带有列过滤器的jquery数据表中的select-all复选框

时间:2013-09-17 23:28:41

标签: jquery checkbox datatable selectall

有谁知道如何在jquery数据表的column-filter插件头中添加一个复选框?当我选中复选框时,触发回调(我将'检查'表中的所有复选框或'取消选中',如果是这样的话)?

不,我不是在谈论这个:http://jquery-datatables-column-filter.googlecode.com/svn/trunk/checkbox.html。我只需要一个简单的旧简单复选框,而不是那个富有复选框的下拉菜单。雅虎邮件上的东西 - 如果你想要一个例子。

我试过了:

<script>

var oTable = $('table#table_muc').dataTable();
oTable.columnFilter({
   "sPlaceHolder": "head:after",
   "iFilteringDelay": 0,
   "aoColumns":[
       { "type": "checkbox" },
       {},
       {},
       {},
       {},
   ]
});

</script>

它不起作用。标题中复选框所在的单元格是空的(好吧,只包含该列的标题值,但没有复选框)。

如果重要:

  • jquery-version:1.8.3
  • jquery.dataTables version:1.9.4
  • jquery.dataTables.columnFilter:1.4.5

更新:我还找到了这个链接:https://code.google.com/p/jquery-datatables-column-filter/wiki/ColumnFilter。坏消息是它没有提到复选框。好消息就像有人设法扩展它,我可能能做得更少(我不需要整个checboxed-div)。

1 个答案:

答案 0 :(得分:2)

我得到了答案:至少从我所看到的情况来看,没有直接/简单的方法可以做到这一点。

我做了什么:

一个。我添加了一个名为“custom”的新自定义过滤器控件类型; 湾aoColumns将具有以下定义:

"aoColumns":[
{ "type": "custom", "callback": fnControlCallback }, 
{},
{},
{},
{},
{}]

℃。在jquery.dataTables.columnFilter.js中将以下函数更改为如下所示:

function _fnRangeLabelPart(iPlace) 
{
  ...
  switch (aoColumn.type) 
  {
  ...
    case "custom":
      if (null != aoColumn.callback && undefined != aoColumn.callback) 
      {
        fnPrepareForCallback(oTable, aoColumn);
      }
      break;

d。然后,新函数(相同文件:jquery.dataTables.columnFilter.js):

function fnPrepareForCallback(oTable, aoColumn) {
    var index = i;
    var s = aoColumn.callback(oTable, aoColumn, $(this));

    var object = $(s);
    th.html(object);
}

即回调方法如下:

function fnControlCallback(oTable, aoColumn, o) { return '<input type="checkbox">'; }

希望它可以帮助某人并节省一些时间。感谢。