2012-06-13 20 views
9

Bir sınıf kullanarak jquery datatable'daki belirli satır/sütunlarda sıralama nasıl devre dışı bırakılır?jquery datatable Belirli bir satırda sıralamayı devre dışı bırakma

İşte örnek tablom;

<table> 
    <thead> 
    <tr> 
    <th class="sorting_disabled">Title1</th> 
    <th class="">Title2</th> 
    <th class="sorting_disabled">Title3</th> 
    </tr> 
    </thead> 
    <tbody> 
    <tr><td>Tag 1</td><td>Date 1</td><td>Date 2</td></tr> 
    <tr><td>Tag 2</td><td>Date 2</td><td>Date 2</td></tr> 
    <tr><td>Tag 3</td><td>Date 3</td><td>Date 3</td></tr> 
    <tr><td>Tag 4</td><td>Date 4</td><td>Date 4</td></tr> 
    <tr><td>Tag 5</td><td>Date 5</td><td>Date 5</td></tr> 
.... 
    </tbody> 
    </table> 

script; Yukarıdaki kod çalışır, ancak bir sonraki sütunu tıklatırsa, bir sonraki gösterime sahip olan bir sonraki sütuna tıklarsam, bir ok. . onun tıklanabilir olmasa da, (

Nasıl bir sınıfını kullanan ve bir tablo yeniden çizme/kullanmayarak sıralamayı devre dışı bırakabilir

+0

neyim Burada sıralama tarafından karınca ?? –

+0

Yukarıdaki kod sadece örnek bir tablodur. Ive zaten düzenleyin .. – mrrsb

+0

'aOColumns' def dosyasında' bSortable' için bu sütunlar için false değerine ayarlayabilirsiniz. Bu örneği kontrol edin, sıralama ilk ve ikinci sütunda devre dışı bırakıldı http://live.datatables.net/awizop/edit#preview –

cevap

0

kod aşağıda umut işleri sizin durumunuzda

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

Sen gerekir.. o belirli sütun için "bSortable" üzerinden sıralama devre dışı bırakmak için

0
$(document).ready(function() { 
    $('#example').dataTable({ 
     "aoColumns": [ 
      { "bSortable": false }, 
      null, 
      { "bSortable": false } 
     ] 
    }); 
}); 
2
$('#example').dataTable({ 
    "aoColumnDefs": [ 
     { 'bSortable': false, 'aTargets': [ 1 ] } 
    ]}); 

yapmalıyız ..;.)

0

Soruda olduğu gibi neredeyse aynı çözüm ile geldim, ama "fnHeaderCallback" i kullandım. Anladığım kadarıyla, her bir başlığın yeniden gösterilmesinden sonra çağrılır, böylece hedef sütunun yanındaki sütunu tıkladıktan sonra tekrar görünen 'sınıflandırma' sınıfı hakkında endişelenmenize gerek kalmaz. geri aramaları hakkında

$('.datatable').dataTable({ 
    "fnHeaderCallback": function() { 
    return $('th.sorting.sorting_disabled').removeClass("sorting").unbind("click"); 
    } 
}); 

Ek belgeler: http://datatables.net/usage/callbacks

9

Sen tanımında bir sınıf kullanarak sıralamayı devre dışı bırakabilir. Sadece datatable başlatma için bu kodu ekleyin:

// Disable sorting on the sorting_disabled class 
"aoColumnDefs" : [ { 
    "bSortable" : false, 
    "aTargets" : [ "sorting_disabled" ] 
} ] 
2

benim için çalışıyor .it şu cevabı deneyin.

<table class="tablesorter" id="tmp"> 
<thead> 
    <tr> 
     <th>Area</th> 
     <th>Total Visitors</th> 
    </tr> 
</thead> 
<tbody> 
    <tr> 
     <td>Javascript</td> 
     <td>15</td> 
    </tr> 
    <tr> 
     <td>PHP</td> 
     <td>3</td> 
    </tr> 
    <tr> 
     <td>HTML5</td> 
     <td>32</td> 
    </tr> 
    <tr> 
     <td>CSS</td> 
     <td>14</td> 
    </tr> 
    <tr> 
     <td>XML</td> 
     <td>54</td> 
    </tr> 
</tbody> 
<tfoot> 
    <tr class="no-sort"> 
     <td><strong>Total</strong></td> 
     <td><strong>118</strong></td> 
    </tr> 
</tfoot> 

kaynak: http://blog.adrianlawley.com/tablesorter-jquery-how-to-exclude-rows

2
<th class="sorting_disabled">&nbsp;</th> 

$(document).ready(function() { 
    $('#yourDataTableDivID').dataTable({ 
     "aoColumnDefs": [ 
      { 
       "bSortable": false, 
       "aTargets": ["sorting_disabled"] 
      } 
     ] 
    }); 
}); 
0

tek çözüm: Önce sıralama devre dışı bırakmak istediğiniz herhangi <th> için class="sorting_disabled" ekleyin, daha sonra datatable başlatma için bu kodu ekleyin:

 // Disable sorting on the sorting_disabled class 
     "aoColumnDefs" : [ { 
      "bSortable" : false, 
      "aTargets" : [ "sorting_disabled" ] 
     } ], 
     "order": [ 
      [1, 'asc'] 
     ], 
İlgili konular