2009-12-01 7 views
2

J'ai créé un contrôle et ajouté une zone de texte dans ce contrôle, J'attache que le contrôle à une page .aspx viaC# Contrôles utilisateur: contrôles d'accès propriétés

<%@ Register Src="../UserControls/AccountSearchControl.ascx" TagName="SearchControl" 
TagPrefix="csr" %> 

et

<csr:SearchControl ID="AccountSearchControlBox" runat="server" OnSearchButtonClick="RetreiveAccounts" /> 

Sur le fichier .aspx.cs je veux accéder à la valeur de la TextBox dans le contrôle de l'utilisateur ... comment y parvenir?

Répondre

4

Ajouter une propriété publique dans AccountSearchControl.ascx

public string TextBoxText { 
    get { 
     return TextBox1.Text; 
    } 
    set { 
     TextBox1.Text = value; 
    } 
} 

Par défaut tous les contrôles que vous placez sur la page une visibilité protected (Jetez un oeil à AccountSearchControl.ascx.designed.cs pour voir). Vous devez donc exposer une méthode pour votre page pour accéder à la zone de texte.

3

vous voulez quelque chose comme ceci sur votre usercontrol

public string textBoxValue 
{ 
    get { return this.myTextBoxId.Text; } 
    set { this.myTextBoxId.Text = value; } 
} 
2

est ici un moyen d'accéder à un contrôle de la zone de texte dans un contrôle utilisateur:

TextBox yourTextBox = (TextBox)AccountSearchControlBox.FindControl("your_textbox_ID"); 
+1

webforms sale folie –

+2

celui-ci est pas un problème, mais parfois vous avez besoin d'accéder à un contrôle chez le parent .. ce cas est vraiment ennuyeux :) – Canavar

Questions connexes