Элемент тела доступа от страницы содержания через вложенную основную страницу

Все, что я хочу сделать, является доступом <body> элемент из кода - позади страницы содержания и добавляет имя класса к нему.

У меня есть основная страница верхнего уровня с <body> элемент в нем. Затем у меня есть вложенная основная страница, которая является основной страницей для страницы содержания. Из кода позади страницы содержания я хочу добавить имя класса к элементу тела.Это все.

У меня есть это в ведущем устройстве верхнего уровня:

<body id="bodyNode" runat="server">

Я добавил это к коду - позади для страницы содержания:

Master.bodyNode.Attributes.add("class", "home-page");

И я получаю сообщение что:

Система. Сеть. UI.MasterPage' не содержит определение для 'bodyNode

Если я добавляю это к aspx странице содержания:

<% @ MasterType VirtualPath="~/MasterPage.master"%>

Сообщение затем изменяется на:

bodyNode недоступен из-за его уровня защиты

Советуйте, я пропал впустую как 2 часа на том, что чувствует себя подобно чему-то, что должно быть действительно просто сделать :(

5
задан danwellman 14 March 2016 в 08:23
поделиться

2 ответа

после того, как вы установили runat = "server" для своего основного узла, вы должны получить к нему доступ, используя пространство имен HTMLControls. попробуй это.

public void Page_Load(Object sender, EventArgs e)
{ 
//Inject onload and unload
HtmlGenericControl body = (HtmlGenericControl)Master.FindControl("bodyNode");
body.Attributes.Add("class", "home-page");   
}

РЕДАКТИРОВАТЬ
Ваша проблема в том, что у вас есть вложенные главные страницы.

Поскольку тег «body» находится на главной странице верхнего уровня, Master.FindControl () не будет работать, поскольку он просматривается на вложенной главной странице.

Что вам нужно сделать, так это использовать Master.Master.FindControl () или рекурсивно прокручивать ваши мастер-страницы до тех пор, пока Master.Master не станет нулевым (тогда вы знайте, что вы находитесь на главной странице верхнего уровня), а затем вызываете FindControl () для этого.

11
ответ дан 13 December 2019 в 19:22
поделиться

Я бы добавил общедоступное свойство к коду за главной страницей, которое разрешило бы доступ к тегу body, который является частью главной страницы. А затем вызовите это свойство со страницы содержимого.

0
ответ дан 13 December 2019 в 19:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: