2016-02-26 5 views
0

initialisation Datatatable:Quel est le rappel de la fonction responsive.details.renderer() dans jQuery datatable?

$('#tblEmployee').DataTable({ 
     "bDestroy": true, 
     responsive: true, 
     "order": [[0, "desc"]], 
     "bFilter": false, 
     "bInfo": false, 
     "bLengthChange": false, 
     "lengthMenu": [[5]], 
     "bAutoWidth": false, 
     "oLanguage": { 
      "sEmptyTable": "No records found !", 
     }, 
     "processing": true 
}); 

Compte tenu de répondre datatable, lorsque l'utilisateur clique sur le symbole "Plus", il rend les lignes enfants ayant la classe ".child" à l'intérieur table. Ici, je dois appeler appeler une fonction javascript pour désactiver les contrôles de la datatable. Je dois désactiver les contrôles uniquement lorsque le datatable est réduit.

function disableCtrlInsideDT(){  
     $('.dataTable.collapsed').find('input:checkbox, input:button, select, button').attr('disabled', true); 
} 

J'ai écrit un CSS externe aussi bien, mais il ne fonctionne pas comme prévu. Je veux dire, le CSS désactive le contrôle mais le curseur "non autorisé" ne fonctionne pas à ce moment-là.

.dataTable.dtr-inline.collapsed tbody tr { cursor: pointer !important; pointer-events: none !important; } 

, je dois donc un rappel où je peux écrire toutes les méthodes javascript, qui devraient être congédiés après avoir rendu des lignes enfants.

+0

Pouvez-vous poster un violon pour mieux déboguer? – Akhoy

+0

Salut @Akhoy, Merci pour votre réponse. Désolé je n'ai aucune idée sur la façon de poster un violon. J'essaye de le faire. Mais pour l'instant, voici un lien pour votre meilleure compréhension. [link_DataTable] (https://datatables.net/extensions/responsive/examples/styling/bootstrap.html) Comme un événement "page.dt" qui est le rappel de pagination, callback de la méthode draw() $ ('# tblEmployee'). on ('page.dt', function() { // code javascript ici }); Similaire J'ai besoin d'une méthode/événement de rappel lorsque l'utilisateur clique sur le symbole "Plus" de datatable en vue mobile. –

Répondre

1

Vous pouvez gérer l'événement responsive-display lorsque les détails d'une ligne ont été affichés, mis à jour ou masqués.

Par exemple:

var table = $('#example').DataTable({ 
    responsive: true 
}); 

table.on('responsive-display', function (e, datatable, row, showHide, update) { 
    console.log('Details for row '+row.index()+' '+(showHide ? 'shown' : 'hidden')); 
}); 

Cependant, il ne sait pas pourquoi vous voulez désactiver clique sur le contrôle (+), je vais laisser à vous.

+0

Merci beaucoup @ Gyrocode.com .. Cela a fonctionné pour moi .. En fait il y a 6 listes déroulantes et 8 multisélect-dropdowns dans un datatable. En mode mobile, cela semble un peu bizarre et très difficile à gérer par l'utilisateur final. Donc, temporairement, je désactive ces contrôles dans le mobile jusqu'à ce que nous ayons une interface utilisateur stable. –