Как получить доступ к элементам управления содержанием на главной странице в 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