Comment ajouter une classe à un lien si le parent de l'élément de liste a des enfants?

StackOverflow https://stackoverflow.com//questions/23039416

  •  21-12-2019
  •  | 
  •  

Question

Je suis en train de construire Bootstrap menu dans Kentico 6 à l'aide de "Universal viewer" webpart et les transformations hiérarchiques.Jusqu'à présent j'ai eu de la structure, mais je ne suis pas en mesure de comprendre comment ajouter "dropdown-menu" classe à un lien quand son parent <li> a des enfants.

C'est le code, je suis de la génération de maintenant:

<ul class="nav navbar-nav">
  <li>
    <a href="#">Some link</a>
    <ul>...</ul>
  </li>
</ul>

Et je suis en train de réaliser ceci:

<ul class="nav navbar-nav">
  <li>
    <a href="#" class="dropdown-toggle" data-toggle="dropdown">Some link</a>
    <ul>...</ul>
  </li>
</ul>

De classe et les données doivent être ajoutées uniquement si le parent <li> a <ul> incorporé à l'intérieur.

Dois-je utiliser la macro de transformation ou est-il un moyen de réaliser cela avec ascx transformation?

Était-ce utile?

La solution

Si il y a toujours une liste déroulante dans le cas de certains nœuds enfants vous pouvez utiliser NodeChildNodesCount de la valeur.

<a href="#" <%# ((int)Eval("NodeChildNodesCount") > 0) ? "class=\"dropdown-toggle\" data-toggle=\"dropdown\"" : "" %>>Some link</a>

Si il y a quelques conditions supplémentaires comme type de document, vous devez récupérer le nombre de nœuds enfants pour que des conditions spécifiques.Vous pouvez l'atteindre par le document de l'API, dans une classe d'assistance ou directement dans ASCX transformation.Recherchez TreeProvider classe.Notez que cela peut être la performance de fonctionnement intensif.Je voudrais également envisager d'ajouter que ces déroulant classes sur le côté client en javascript.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top