2010-06-14 3 views
2

Comment changer la valeur d'un contrôle, par ex. Littéral dans un contrôle utilisateur et ce contrôle utilisateur est dans la page maître et je veux modifier la valeur de ce littéral à partir de la page de contenu.Comment changer la valeur d'un contrôle dans une page maître?

((System.Web.UI.UserControl)this.Page.Master.FindControl("ABC")).FindControl("XYZ").Text = ""; 

Ici ABC est le contrôle utilisateur et XYZ est le contrôle littéral.

Répondre

5

La meilleure solution consiste à exposer les valeurs à travers les propriétés publiques.

il faut mettre dans votre ABC contrôle qui contient le contrôle XYZ:

public string XYZText 
{ 
    get 
    { 
     return XYZControl.Text; 
    } 
    set 
    { 
     XYZControl.Text= value; 
    } 
} 

Maintenant, vous pouvez exposer cela depuis la page principale en ajoutant la propriété suivante à la MasterPage:

public string ExposeXYZText 
{ 
    get 
    { 
     return ABCControl.XYZText; 
    } 
    set 
    { 
     ABCControl.XYZText = value; 
    } 
} 

Ensuite, pour l'utiliser à partir de n'importe quelle page de contenu, il suffit de faire ce qui suit (où MP est la classe MasterPage):

string text = ((MP)Page.Master).ExposeXYZText; 
((MP)Page.Master).ExposeXYZText = "New Value"; 
Questions connexes