Javascript Datatables—当未显示所有列时,如何禁用表中最后一列的排序

Javascript Datatables—当未显示所有列时,如何禁用表中最后一列的排序,javascript,jquery,sorting,datatable,datatables,Javascript,Jquery,Sorting,Datatable,Datatables,我有一张这样的桌子: "columns": [ { "data": 0, "iDataSort" : 0 }, { "data": 1, "iDataSort" : 1, "render": function ( data, type, row ) {

我有一张这样的桌子:

"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>';
                }

            }

        ],
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>';
                }

            }

        ],
“列”:[
{
“数据”:0,
“iDataSort”:0
},
{
“数据”:1,
“iDataSort”:1,
“渲染”:函数(数据、类型、行){
var returnString=数据;
if(第[2]行!==null&&第[2]行。长度>0){
returnString+=“
    ”; 对于(第[2]行中的var alternativeTitle){ returnString+=“
  • ”+行[2][alternativeTitle]+“
  • ” } returnString+=“
” } 返回字符串; } }, { “iDataSort”:3, “数据”:3 }, { “iDataSort”:4, “数据”:4 }, { “数据”:空, “可搜索”:错误, “可移植”:错误, “sClass”:“中心”, “渲染”:函数(行){ 返回“”; } } ],
HTML:

"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>';
                }

            }

        ],
        <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,实际上,当我单击“按国家排序”时,什么都不会发生,因为datatables向服务器发送“bSortable_4=false

"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

"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>';
                }

            }

        ],
<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>
这是小提琴

"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

"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>';
                }

            }

        ],
<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>
这是小提琴

"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>';
                }

            }

        ],

希望有帮助!

可能重复的??您尝试过这个吗???@Poria是的,我尝试过。“aoColumnDefs”:[{'bSortable':false,'aTargets':[4]}],还禁用了“country”列可能重复的??您尝试过这个吗???@Poria是的,我尝试过。“aoColumnDefs”:[{'bSortable':false,'aTargets':[4]}],还禁用了“country”列它不起作用。当我使用您的解决方案时,它禁用了对“Actions”和“country”列的排序。我可以单击“country”列,但什么也没有发生,因为Datatables发送了“bSortable_4”==false,其中4是服务器列数组中的country列(0-身份证,1-原头衔,2-备选头衔,3年,4-国家)它在我发送的小提琴中工作,请根据您的需要尝试即兴创作,谢谢!它不起作用。当我使用您的解决方案时,它禁用了“操作”和“国家”列的排序。我可以单击“国家”列,但什么也没有发生,因为Datatables发送了“bSortable_4”==false,其中4是服务器中的国家列columns array(0-id,1-original title,2-alternative title,3-year,4-country)它正在我发送的小提琴中工作,请根据您的需要尝试即兴创作,谢谢!
"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>';
                }

            }

        ],