[javascript] jQuery DataTables에서 특정 열에 대한 정렬 비활성화

jQuery DataTables 플러그인 을 사용 하여 테이블 필드를 정렬하고 있습니다. 내 질문은 : 특정 열에 대한 정렬을 어떻게 비활성화합니까? 다음 코드로 시도했지만 작동하지 않았습니다.

"aoColumns": [
  { "bSearchable": false },
  null
]   

또한 다음 코드를 시도했습니다.

"aoColumnDefs": [
  {
    "bSearchable": false,
    "aTargets": [ 1 ]
  }
]

그러나 여전히 원하는 결과를 얻지 못했습니다.



답변

이것은 당신이 찾고있는 것입니다 :

$('#example').dataTable( {
      "aoColumnDefs": [
          { 'bSortable': false, 'aTargets': [ 1 ] }
       ]
});


답변

DataTables 1.10.5부터 HTML5 data- * 속성을 사용하여 초기화 옵션을 정의 할 수 있습니다.

-fromDataTables 예제 -HTML5 data- * 속성-테이블 옵션

당신이 사용할 수 있도록 data-orderable="false"th열 당신이 정렬되고 싶지 않아. 예를 들어 아래 표의 두 번째 열 “아바타”는 정렬 할 수 없습니다.

<table id="example" class="display" width="100%" data-page-length="25">
    <thead>
        <tr>
            <th>Name</th>
            <th data-orderable="false">Avatar</th>
            <th>Start date</th>
            <th>Salary</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>Tiger Nixon</td>
            <td><img src="https://www.gravatar.com/avatar/8edcff60cdcca2ad650758fa524d4990?s=64&amp;d=identicon&amp;r=PG" alt="" style="width: 64px; height: 64px; visibility: visible;"></td>
            <td>2011/04/25</td>
            <td>$320,800</td>
        </tr>
        <tr>
            <td>Garrett Winters</td>
            <td><img src="https://www.gravatar.com/avatar/98fe9834dcca2ad650758fa524d4990?s=64&amp;d=identicon&amp;r=PG" alt="" style="width: 64px; height: 64px; visibility: visible;"></td>
            <td>2011/07/25</td>
            <td>$170,750</td>
        </tr>
        ...[ETC]...
    </tbody>
</table>

참조 https://jsfiddle.net/jhfrench/6yxvxt7L/에서 동작하는 예제를 .


답변

첫 번째 열 정렬을 비활성화하려면 datatables jquery에서 아래 코드를 사용해보십시오. 널은 여기에서 정렬 가능을 나타냅니다.

$('#example').dataTable( {
  "aoColumns": [
  { "bSortable": false },
  null,
  null,
  null
  ]
} );

jQuery 데이터 테이블에서 열 정렬 비활성화


답변

Datatables 1.9.4 사용이 코드로 첫 번째 열의 정렬을 비활성화했습니다.

/* Table initialisation */
$(document).ready(function() {
    $('#rules').dataTable({
        "sDom" : "<'row'<'span6'l><'span6'f>r>t<'row'<'span6'i><'span6'p>>",
        "sPaginationType" : "bootstrap",
        "oLanguage" : {
            "sLengthMenu" : "_MENU_ records per page"
        },
        // Disable sorting on the first column
        "aoColumnDefs" : [ {
            'bSortable' : false,
            'aTargets' : [ 0 ]
        } ]
    });
});

편집하다:

no-sort클래스를 사용하여 사용 중지 할 수도 있습니다 <th>.

이 초기화 코드를 사용하십시오.

// Disable sorting on the no-sort class
"aoColumnDefs" : [ {
    "bSortable" : false,
    "aTargets" : [ "no-sort" ]
} ]

편집 2

이 예에서는 이전 블로그 게시물에 따라 Bootstrap과 함께 Datables를 사용하고 있습니다. 이제 부트 스트랩을 사용하여 데이터 테이블 스타일링 에 대한 업데이트 된 자료가있는 하나의 링크가 있습니다.


답변

내가 사용하는 것은 ad td에 사용자 정의 속성을 추가하고 해당 attr 값을 자동으로 확인하여 정렬을 제어하는 ​​것입니다.

HTML 코드는

<table class="datatables" cellspacing="0px" >

    <thead>
        <tr>
            <td data-bSortable="true">Requirements</td>
            <td>Test Cases</td>
            <td data-bSortable="true">Automated</td>
            <td>Created On</td>
            <td>Automated Status</td>
            <td>Tags</td>
            <td>Action</td>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>

데이터 테이블을 초기화하는 JavaScript는 (테이블 자체에서 정렬 정보를 동적으로 가져옵니다.)

$('.datatables').each(function(){
    var bFilter = true;
    if($(this).hasClass('nofilter')){
        bFilter = false;
    }
    var columnSort = new Array;
    $(this).find('thead tr td').each(function(){
        if($(this).attr('data-bSortable') == 'true') {
            columnSort.push({ "bSortable": true });
        } else {
            columnSort.push({ "bSortable": false });
        }
    });
    $(this).dataTable({
        "sPaginationType": "full_numbers",
        "bFilter": bFilter,
        "fnDrawCallback": function( oSettings ) {
        },
        "aoColumns": columnSort
    });
});


답변

columnDefs이제 수업을 받아들입니다. 마크 업에서 비활성화 할 열을 지정하려는 경우 이것이 선호되는 방법이라고 말하고 싶습니다.

<table>
    <thead>
        <tr>
            <th>ID</th>
            <th>Name</th>
            <th class="datatable-nosort">Actions</th>
        </tr>
    </thead>
    ...
</table>

그런 다음 JS에서 :

$("table").DataTable({
    columnDefs: [{
        targets: "datatable-nosort",
        orderable: false
    }]
});


답변

특정 열을 비활성화 할 수있는 기능은 다음과 같습니다.

 $('#tableId').dataTable({
            "columns": [
                { "data": "id"},
                { "data": "sampleSortableColumn" },
                { "data": "otherSortableColumn" },
                { "data": "unsortableColumn", "orderable": false}
           ]
});

따라서 정렬 할 수없는 열에 “orderable”: false를 추가하기 만하면됩니다.