Доступ к элементам управления главной страницы в не главной странице? - PullRequest
3 голосов
/ 30 января 2012

В asp.net как я могу получить доступ к элементам управления главной страницы на не главной странице?

Ответы [ 3 ]

5 голосов
/ 30 января 2012

Вы можете получить доступ к главной странице как свойство на текущей странице. Однако элементы управления на главной странице защищены, поэтому вы не можете получить к ним доступ напрямую. Но вы можете получить к ним доступ, используя FindControl(string name). Код, который вам нужно использовать, зависит от того, находится ли элемент управления внутри или снаружи заполнителя содержимого.

// Gets a reference to a TextBox control inside a ContentPlaceHolder
ContentPlaceHolder mpContentPlaceHolder;
TextBox mpTextBox;
mpContentPlaceHolder = 
    (ContentPlaceHolder)Master.FindControl("ContentPlaceHolder1");
if(mpContentPlaceHolder != null)
{
    mpTextBox = (TextBox) mpContentPlaceHolder.FindControl("TextBox1");
    if(mpTextBox != null)
    {
        mpTextBox.Text = "TextBox found!";
    }
}

// Gets a reference to a Label control that is not in a 
// ContentPlaceHolder control
Label mpLabel = (Label) Master.FindControl("masterPageLabel");
if(mpLabel != null)
{
    Label1.Text = "Master page label = " + mpLabel.Text;
}
2 голосов
/ 30 января 2012

Использовать можно

TextBox txt1 = (TextBox)this.Master.FindControl("MytxtBox");
txt1.Text="Content Changed from content page";
2 голосов
/ 30 января 2012

добавьте это в свою веб-страницу для доступа к содержимому главной страницы Мастер-страница: программный доступ

<%@ MasterType virtualpath="Your MasterPath" %>

Вы можете сделать это (альтернативный способ)

MasterPage mstr 
Label lbl
mstr = Page.Master
If (mstr.ID == "yourMasterIDString")
{
     lbl = mstr.FindControl("lblBar")
        If (lbl !=null)
          {
                lbl.Text = "Do some Logic"
          }
}
...