JQuery数据表。初始化表时,为列设置默认搜索值

时间:2018-01-18 07:49:02

标签: jquery datatables

我正在使用数据表1.10.15进行服务器端处理。我希望在表初始化时为列搜索设置值。 我试过这个但没有成功:

$('#dataTable').DataTable({
    ...
    columns:[
        ....
        {name:'name', search:{value:'q'}}
        ....
    ]
});

4 个答案:

答案 0 :(得分:5)

您可以尝试:

$('#example').dataTable( {
  "search": {
    "search": "Fred"
  }
});

它将在搜索列中使用Fred初始化数据表。

Working Fiddle

Reference

答案 1 :(得分:3)

我必须做同样的事情。我通过创建延迟加载的数据表来工作,然后填充搜索文本,然后使用搜索参数进行ajax调用。

var Datatable = DataTable({
 deferLoading:true
 ... other options
});

//set search text on specific column
DataTable.columns(columnIndex).search('default search text'); 

//make ajax to call server
DataTable.draw(); 

答案 2 :(得分:0)

这可能有效!但是,在这里你必须给出位置,而不是那个列的名称。

$( document ).ready(function() {
   var table = $('#dataTable').DataTable();
   table
        .columns( 3 )
        .search( "Your_Value" )
        .draw();
});

这里只是一个例子。使用列位而不是3 参考Here

答案 3 :(得分:-1)

这里可以使用“ SearchCols”。

与搜索选项基本相同,但是在这种情况下,对于单个列而不是全局过滤器,此选项定义了在初始化期间应用于表的过滤。

该数组的大小必须与列数相同,并且每个元素都是具有参数search和escapeRegex的对象(后者是可选的)。 'null'也被接受,并且将使用默认值。

示例:

$('#example').dataTable( {
  "searchCols": [
    null,
    { "search": "My filter" },
    null,
    { "search": "^[0-9]", "escapeRegex": false }
  ]
} );

当初始化数据表时可以设置默认搜索值时,这是唯一正确的解决方案。值得数据表文档。

更多信息:https://datatables.net/reference/option/searchCols

工作示例:http://live.datatables.net/piqidoqo/603/edit