2014-05-21 9 views
5

Ich verwende DataTable 1.10 und TableTools 2.2.1.Wie Sie eine DataTables/TableTools-Schaltfläche deaktivieren

Angesichts der folgenden geschnipste möchte ich die Bearbeitungsschaltfläche deaktivieren/aktivieren.

var myTable = $("#myTable ").DataTable({ 
tableTools : { 
    "aButtons" : [ { 
     "sExtends" : "text", 
     "sButtonText" : "Edit", 
     "fnClick" : function(nButton, oConfig, oFlash) { 
      /* some stuff */  
     } 
    }] 
    } 
}) 

Gibt es eine Möglichkeit, dies zur Laufzeit zu tun?

Vielen Dank

Antwort

3

Das war eine gute Frage! Scheint, dass das in fnClick

dataTable.tabletools().fnSettings().buttonSet[id].fnClick 

nur ein Verweis auf den Fall an anderer Stelle, nicht zugänglich ist, gespeichert sind (fnClick auf der API ändert keine Wirkung hat). Sie können jedoch die vordefinierte Klasse DTTT_disabled und prüfen Sie, dass in Ihrem fnClick -Handler verwenden:

var dataTable = $("#example").DataTable({ 
    sDom: 'TC', 
    oTableTools : { 
     aButtons : [{ 
      sExtends : "text", 
      sButtonText : "Edit", 
      fnClick : function(nButton, oConfig, oFlash) { 
       if ($(nButton).hasClass('DTTT_disabled')) return; 
       alert('edit button clicked'); 
      } 
     }] 
    } 
}); 

Beispiel mit einem Kontrollkästchen aktivieren oder deaktivieren Sie die Taste:

$("#enable").click(function() { 
    if ($(this).is(':checked')) { 
     $('.DTTT_button_text').removeClass('DTTT_disabled'); 
    } else { 
     $('.DTTT_button_text').addClass('DTTT_disabled'); 
    } 
}); 

siehe Demo ->http://jsfiddle.net/ev2N2/

+0

Das funktioniert perfekt. Danke vielmals :-) – thowa

Verwandte Themen