2014-05-21 7 views
5

Utilizzo DataTable 1.10 e TableTools 2.2.1.come disattivare un pulsante DataTables/TableTools

Dato il seguente frammento vorrei disabilitare/abilitare il pulsante di modifica.

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

Esiste la possibilità di eseguire questa operazione in fase di esecuzione?

Grazie mille

risposta

3

Questa era una buona domanda! Sembra che la fnClick in

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

è soltanto un riferimento all'evento memorizzato altrove, non accessibile (cambiando fnClick sulle API ha alcun effetto). Tuttavia, è possibile utilizzare la classe predefinita DTTT_disabled e controllare che nel vostro fnClick -handler:

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

esempio con una casella di controllo abilitando o disabilitando il tasto:

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

vedere demo ->http://jsfiddle.net/ev2N2/

+0

Questo funziona perfettamente. Molte grazie :-) – thowa