views:

44

answers:

1

how to change the value of a control e.g. Literal in a user control and that User control is in master page and I want to change the value of that literal from content page.

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

here ABC is user control and XYZ is Literal control

+3  A: 

The best solution is to expose the values through public properties.

Put the following into your ABC control that contains the XYZ control:

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

Now you can expose this from the Master page by adding the following property to the MasterPage:

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

Then to use it from any content page, just do the following (where MP is the MasterPage class):

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