2011-02-08 4 views
0

J'ai créé un contrôle serveur qui utilise la récursivité pour créer un menu. Il génère essentiellement des listes imbriquées avec des ancres à l'intérieur d'eux.Plusieurs WebResources générées en HTML lors de l'utilisation de contrôles serveur récursifs

Maintenant, cela fonctionne parfaitement, puisque le contrôle appelle lui-même pour rendre les menus enfants, il rend également plusieurs références de fichiers javascript WebResource.axd identiques dans.

Une idée pour empêcher cela de se produire? Je veux juste la référence dans mon tag.

Répondre

0

Je fini par résoudre mon problème en faisant un constructeur privé de la forme:

private CustomControl(int level) 
{ 
    this._Level = level + 1; 
} 

Le constructeur public ressemblait à:

public CustomControl() : base() 
{ 
    _Level = 1; 
} 

Ensuite, lors de la sortie des scripts clients dans le OnInit méthode, j'ai vérifié si _Level == 1, seulement en sortie les scripts client si _Level == 1, comme si:

protected override void OnInit(EventArgs e) 
{ 
    base.OnInit(e); 

    if(_Level == 1) 
    { 
    // Add client scripts to this.Page.Header.Controls 
    } 
} 

Je ne sais pas si c'était la meilleure façon, mais ça a marché pour moi.

Questions connexes