我有一个如下所示的表格:
JS:
"columns": [
{
"data": 0,
"iDataSort" : 0
},
{
"data": 1,
"iDataSort" : 1,
"render": function ( data, type, row ) {
var returnString = data;
if( row[2] !== null && row[2].length > 0){
returnString += "<ul>";
for( var alternativeTitle in row[2] ){
returnString += "<li>" + row[2][alternativeTitle] + "</li>"
}
returnString += "</ul>"
}
return returnString;
}
},
{
"iDataSort" : 3,
"data": 3
},
{
"iDataSort" : 4,
"data": 4
},
{
"data":null,
"bSearchable": false,
"bSortable": false,
"sClass": "center",
"render": function (row) {
return '<a href"#">Edit</a>';
}
}
],
HTML:
<table>
<thead>
<tr role="row" class="heading">
<th>
Id#
</th>
<th>
Original title (alternative titles)
</th>
<th>
Year of production
</th>
<th>
Country
</th>
<th>
Actions
</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
如您所见,我提供了一个 5 列数组作为数据源(id、标题、替代标题[]、生产年份和国家/地区),但我以不同的方式呈现它们(原始标题和替代标题位于同一列中)而最后一列用于操作按钮)。现在我想禁用最后一列的排序(因为这没有意义,因为它是为按钮保留的),但是当我在带有按钮的最后一列上放置 "bSortable": false 时,它会影响最后一列在视觉上,但也会影响数据表发送的 GET,实际上,当我单击“按国家/地区排序”时,没有任何反应,因为数据表将“bSortable_4 = false”发送到服务器。
我希望能够对“国家/地区”列进行排序,但禁用对“操作”列进行排序。如何实现这一目标?
最佳答案
这是 html
<table id="example">
<thead>
<tr role="row" class="heading">
<th>
Id#
</th>
<th>
Original title (alternative titles)
</th>
<th>
Year of production
</th>
<th>
Country
</th>
<th>
Actions
</th>
</tr>
</thead>
<tbody>
<tr><td>1</td><td>1</td><td>1</td><td>1</td><td>delete</td></tr>
<tr><td>2</td><td>2</td><td>4</td><td>5</td><td>delete</td></tr>
</tbody>
</table>
这里是 JavaScript
$(document).ready(function() {
$('#example').dataTable({
"order": [],
"aoColumnDefs": [
{ 'bSortable': false, 'aTargets': [ 4 ] }
],
});
});
这是工作 fiddle https://jsfiddle.net/rtn6496n/10/
希望对你有帮助!
关于javascript - 数据表 - 当未显示所有列时如何禁用表中最后一列的排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37154816/