2010-08-24 4 views
0

J'ai un formulaire Web ASP.NET qui a un contrôle utilisateur "conteneur" qui héberge plusieurs contrôles utilisateur personnalisés sur la page. Les contrôles peuvent être hébergés directement dans le conteneur ou peuvent être des enfants d'autres utilisateurs. Le conteneur usercontrol a plusieurs propriétés publiques exposées auxquelles je dois parfois accéder depuis les contrôles utilisateur enfants. J'ai utilisé une forme de "this.Parent" ou "this.Parent.Parent" pour revenir au contrôle de base. Quel serait l'impact de l'enregistrement d'une référence à "this" dans Session à partir du contrôle de base afin que je puisse y accéder depuis les gestionnaires d'événements dans les contrôles utilisateur?Stockage d'une référence au contrôle parent dans la session

Merci,
Darvis

+0

juste pour obtenir un peu de contexte, pourquoi Les commandes utilisateur doivent-elles revenir à la page de base? Êtes-vous en train de lire les propriétés, d'accéder à d'autres contrôles, ou autre chose ??? – Larsenal

+0

alors ... en utilisant ceci.Page ne suffit pas pour vous? vous pouvez lancer à votre page de base –

+0

je dois me corriger ... notre page principale accueille une usercontrol qui est un hôte pour tous nos autres usercontrols. Je n'ai pas besoin d'accéder à la page, mais au contrôle des parents. Ce contrôle utilisateur est sous-classé à partir de System.Web.UI.UserControl. Donc, ce que je veux vraiment faire est de stocker une référence à l'usercontrol principal, pas la page. – DarLom

Répondre

0

Vous pouvez mettre dans votre page:

public MyControlType MyParentControl 
{ 
    get 
    { 
     return this._myParentUserControl; 
    } 
} 

Et mettre ceci dans votre Custom Controls:

var parentPage = this.Page as MyBasePageType; 
if(parentPage !=null){ 
    parentPage.MyParentControl.WhateverFuncNameYouNeed("myParams"); 
} 
+0

vous obtiendrez +1 points brownie pour la coulée à une interface au lieu d'un type concret –

+0

Merci, ce serait faire l'affaire si elle ne le fait que ma question était formulée très mal et ne pas vraiment expliquer ce que je j'essaie de faire. J'ai clarifié dans un commentaire. – DarLom

+0

ah ... eh bien la même astuce fonctionne (avec peaufinage) Je voudrais vraiment vraiment mettre des références ne suggère aux contrôles utilisateur en session ... Je vais mettre à jour ma réponse –

Questions connexes