Как получить доступ к элементам управления содержанием на главной странице в asp.net
очень легко получить доступ к управлению главной страницей страницы контента, например
protected void Page_Load(object sender, EventArgs e)
{
// content page load event
DropDownList thisDropDown = this.Master.FindControl("someDropDown") as DropDownList;
userLabel.Text = thisDropDown.SelectedValue;
}
но как я могу получить доступ к элементам управления страницей контента на главной странице. предположим, что текстовое поле на странице содержания и одна кнопка находятся на главной странице. Я хочу, чтобы, когда я нажму кнопку главной страницы, я хочу показать текст текстового поля на странице содержимого в метке главной страницы. как его достичь. пожалуйста, помогите мне с образцом кода. спасибо.
Ответы
Ответ 1
На главной странице нажмите кнопку события, чтобы получить доступ к содержимому страницы: -
protected void Button1_Click(object sender, EventArgs e)
{
TextBox TextBox1 = (TextBox)ContentPlaceHolder1.FindControl("TextBox1");
if (TextBox1 != null)
{
Label1.Text = TextBox1.Text;
}
}
Ответ 2
Прошло некоторое время, но я считаю, что вы можете сделать это, используя ContentPlaceHolder в качестве ссылки:
Control control = this.myContentPlaceHolder.FindControl("ContentPageControlID");
Ответ 3
По-моему, еще лучше использовать событие рейз с главной страницы и поймать это событие на странице контенетов, например, для изменения некоторых контентов на этой странице. Главное преимущество - повторное использование. В будущем вы можете захотеть изменить контент на другой странице контента на главной странице, и в этом случае вы должны добавить только обработчик событий на эту страницу контента без изменения кода на главной странице. В рамках такого подхода вам не нужно указывать управляющее имя жесткого кода на какой-либо странице контента. И более того, вы не должны добавлять зависимостей для некоторого управления контентом вообще.
Образец реализации вы можете найти здесь, например.
Ответ 4
вы должны искать владельца содержимого с главной страницы, а затем - владельца содержимого в дочерней странице главной страницы
this.Page.Master.FindControl("ContentPlaceHolder1").FindControl("controlAFromPage");
Ответ 5
Вы можете найти элемент управления, используя это:
ContentPlaceHolder contentPage = Page.MasterPage.FindControl("ContentPlaceHolder1") as ContentPlaceHolder;
Label lblHead =(Label)contentPage.FindControl("lblHeading");
Response.Write(lblHead.Text);
Источник:
http://xpode.com/ShowArticle.aspx?ArticleId=629
Ответ 6
Попробуйте этот код
Page.Master.FindControl("MainContent").FindControl("DivContainer_MyProfile").Visible = True