2010-02-13 15 views
2

J'ai inclus un contrôle utilisateur dans un autre code statiquement suivant:enfant accès propriété de contrôle utilisateur dans le contrôle de l'utilisateur parent


lieu la directive que vous avez choisi dans le code asp de la page parent ou usercontrol:

<%@ Register src="Name_of_your_child_control.ascx" tagname="Name_of_your_child_control" tagprefix="uc1" %>

utiliser la balise suivante dans le asp code de la page parent/contrôle:

<uc1:Name_of_your_child_control ID="Name_of_your_child_control1" runat="server" />

..... Mais le problème est ... je ne suis pas en mesure d'accéder aux propriétés publiques du contrôle utilisateur qui a été inclus (contrôle utilisateur enfant) dans un contrôle utilisateur donné (contrôle utilisateur parent) .. .

S'il vous plaît aider :(

Répondre

0

en utilisant

Name_of_your_child_control1.PublicPropertyName 

doit travailler pour votre contrôle utilisateur parent.

5

que votre usercontrol était le suivant:

<%@ Control Inherits="Project.MyControl" Codebehind="MyControl.ascx.cs" %> 
<asp:TextBox ID="TB" runat="server" /> 

Votre commande code-behind:

namespace Project 
{ 
    public partial class MyControl : UserControl 
    { 
    public string MyTextProperty 
    { 
     get { return TB.Text; } 
     set { TB.Text = value; } 
    } 
    } 
} 

Dans votre page parent qui inclut le contrôle, comme celui-ci:

<%@ Register src="~/MyControl.ascx" tagname="MyControl" tagprefix="uc1" %> 
<uc1:MyControl ID="MyControlID" runat="server" /> 

Vous peut utiliser cette propriété dans le code:

MyControlID.MyTextProperty = "bob"; 
+0

Mais pour moi, il vient comme je ne peux pas accéder à la propriété :( –

+0

@Anish - Si vous le référencez comme s'il était là et compilez, quelle erreur obtenez-vous? –

+0

Est-ce que votre page parent est également un contrôle utilisateur Parent page { UC1 { UC2 { } } } –

0

Vérifiez le chemin et les noms de fichiers que vous utilisez, Anish. Vous avez quelque chose de mal. Est-ce que Visual Studio vous dit qu'il ne peut pas trouver le contrôle? Est-ce qu'il échoue au moment de la compilation? Runtime?

0

C'est drôle mais chaque fois que vous ajoutez une propriété à un contrôle utilisateur.

Vous devez l'enregistrer à nouveau dans le parent. Donc, dans votre cas,

Ajouter un espace à la fin de cette ligne et retirez-le de nouveau: $<% Register src="~/MyControl.ascx" tagname="MyControl" tagprefix="uc1" %>

Cela re - enregistrer le contrôle de l'utilisateur et vous serez en mesure d'accéder à de nouvelles propriétés.