2017-09-21 4 views

Répondre

1

J'ai dû ajouter quelques lignes dans le fichier bootstrapp-treeview.js

Code looks like this

Process - >>

  • Aller à l'intérieur bootstrapp_treeview.js

  • Voyez comment sa fonction de rendu fonctionne

  • Yo u trouvera que, après TreeView feu tout événement ou apporter des modifications sur DOM, il appelle sa méthode render
  • Vous trouverez méthode render dans le numéro de la ligne 486
  • Si vous écrivez votre code de telle sorte que votre noeud parent ne doit pas avoir la case à cocher juste écrire

    pour (var i = 0; i < $ (".glyphicon-minus"). longueur; i ++) { $ ($ (". glyphicon-moins") [i]). siblings (". check-icon"). hide(); } pour (i = 0; i < $ (". Glyphicon-plus"). Longueur; i ++) { $ ($ (".glyphicon-plus") [i]) .sousblings (". Check-icon ").cacher(); J'écris du code sur .js de son fichier de bibliothèque. }

1

J'ai rencontré le même problème. Afin de supprimer la case à cocher du parent le plus élevé, j'ai utilisé un peu d'une solution de contournement. Après avoir dessiné l'arbre, je lui dis de trouver l'attribut data-nodeid = 0 et de supprimer l'élément span de l'icône check-icon.

donc juste après l'arbre initialise je lance ceci:

$("#treeview-checkable").find("[data-nodeid=0]").find(".check-icon").remove(); 

J'ai également détecté chaque événement click sur ma page pour faire la même chose.

window.onclick = function(){ 
    $("#treeview-checkable").find("[data-nodeid=0]").find(".check-icon").remove(); 
}; 

Je fais la même chose sur chaque clic parce que je trouvais quand j'expansées, effondré, fait quoi que ce soit à l'arbre, la reparut case à cocher.

Est-ce la meilleure solution? Non ça marche? Oui.

+1

:) dans mon cas, les dossiers parents nodeid ne sont pas garantis pour être seulement "0" –

+0

Je vois que votre solution ci-dessous ne supprime pas la case à cocher. Faites juste attention à cela car il peut encore être vérifié en étant caché si vous utilisez leur fonction "checkAll". Sinon, votre solution fonctionne bien. Désolé je ne savais pas que c'était pour tous les parents, je pensais que c'était juste pour la première fois. – bucky310

+1

Encore une fois, vous pouvez utiliser ces lignes sur la fonction CheckAll également. car, après avoir appelé Checkall, il appellera à nouveau la fonction de rendu et utilisera ces lignes de code par défaut. Il n'y a aucune chance de vérifier la boîte parent du tout. et dans le cas peut-être: Je n'utilise pas checkall, c'est la meilleure solution que j'ai eu jusqu'à présent –