Columanfilter не работает в таблицах данных при предварительной обработке на стороне сервера. Поиск данных по столбцам не работает. Ниже приведен пример кода. Пожалуйста, укажите его в jsdiddle или любом другом. Пожалуйста, помогите мне.
Это код JavaScript
$(document).ready(function() {
drawDataTable = function()
{
$('#example').dataTable( {
"processing": true,
"serverSide": true,
"ajax": "../server_side/scripts/server_processing.php",
"sPagination": "full_numbers",
"bFilter": true,
"oSearch":{
"sSearch":"",
"bRegex": false,
"bSmart": true },
"aoColumns":[
{"bSearchable": true},
null,
null,
null
]
})
.columnFilter({
aoColumns: [{
type: "text"}, {
type: "text"}, {
type: "text"},{
type: "text"}]
});
}
drawDataTable();} );
И это HTML-код
<table id="example" class="display" cellspacing="0" width="100%">
<thead>
<tr>
<th>Name</th>
<th>Position</th>
<th>Office</th>
<th>Extn.</th>
</tr>
</thead>
<tfoot>
<tr>
<th>Name</th>
<th>Position</th>
<th>Office</th>
<th>Extn.</th>
</tr>
</tfoot>
</table>
Похоже, ты скучаешь между телом thead
а также tfoot
:
<tbody>
<tr>
<td>Name</td>
<td>Position</td>
<td>Office</td>
<td>Extn.</td>
</tr>
</tbody>
Кажется, что значение sSource не передается должным образом. sSource — это, по сути, значение URL-адреса «ajax» в DataTables.js. Мое решение для этого состоит в том, чтобы заново добавить sSource из значения ajax DataTable в строке 796 в файле columnFilter.js:
sSource = sSource ? sSource : oTable.fnSettings().ajax;
Так это будет выглядеть примерно так:
oTable.fnSettings().fnServerData = function (sSource, aoData, fnCallback) {
sSource = sSource ? sSource : oTable.fnSettings().ajax;
....
}