Voici comment ma structure est configurée: J'ai beaucoup de Services (DocType) qui contiennent des Documents enfants (DocType). Le document DocType peut avoir d'autres éléments de document en tant qu'enfants.Obtention récursive d'enfants pour une génération treeview dans un modèle
De cette façon, il est possible pour les éditeurs de créer ce genre d'arbre: service> Document> Document> Document> Document
Il n'y a pas de limites à la quantité de niveaux, cela peut durer . J'essaye de trouver un moyen de boucler récursivement chaque document et leurs descendants, mais ils doivent être imbriqués l'un dans l'autre. C'est là que j'ai des problèmes.
Je n'arrive pas à trouver un moyen simple de boucler récursivement chaque niveau par enfant pour générer le contenu.
Voici ce que j'ai jusqu'à présent:
@{ var selection = Model.Children.Where("Visible");
if (selection.Any()) {
<ul>
@foreach (var item in selection) {
<li>
<div class="ServiceDocCenterDocumentation">
<h4><a href="#" id="[email protected]" class="DocCenterDocumentationTitle">@item.Name</a></h4>
<div class="DocCenterDocumentationDescription">@item.GetPropertyValue("bodyText")</div>
</div>
<div>
@foreach (var children in item.Descendants()){
@* This is the part I'm struggling with for the last few days *@
var actualChildren = children;
<h5><a href="#" id="[email protected]" class="DocCenterDocumentationTitle">@children.Name</a></h5>
<div class="DocCenterDocumentationDescription">@children.GetPropertyValue("bodyText")</div>
}
</div>
</li>
}
</ul>
}
}
Voici ce que je voudrais réaliser (récursive, non manuellement):
<div class="myService">
<div class="Documents">
<div class="[email protected]">
@elem.bodyText
foreach (var child in elem.Children){
<div class="[email protected]">
@child.bodyText
foreach (var grandchild in child.Children){
@* It goes on and on for the amount of levels available *@
}
</div>
}
</div>
</div>
</div>
Je ne suis toujours pas très couramment rasoir, et je me demande s'il y a un moyen de réaliser ce que je voudrais accomplir.
Je ne pouvais pas demander une meilleure réponse. Je vais regarder dans les aides, il devrait optimiser à peu près tout mon projet. Je vais aussi examiner plus en détail les fonctions de l'élément 'section' (et d'autres éléments de structure HTML5). Il y a une prime de 100 rep pour cette réponse dans 23 heures (quand il est possible de l'assigner). Je vous remercie ! –
Heureux d'aider :) –