2012-01-30 2 views
3

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

+0

Является ли представление, которое вы показываете usin g главная страница с элементами управления? – Brian

ответ

5

Вы можете получить доступ к главной странице как собственности на текущей странице. Однако элементы управления на главной странице защищены, поэтому вы не можете получить к ним доступ напрямую. Но вы можете получить к ним доступ, используя 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; 
} 
+0

Кто такой 'Label1'? –

2

добавить это в свою веб-страницу, чтобы получить доступ к содержимому главной страницы Master Page : programatically access

<%@ 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" 
      } 
} 
2

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

TextBox txt1 = (TextBox)this.Master.FindControl("MytxtBox"); 
txt1.Text="Content Changed from content page"; 
Смежные вопросы