ASP.net получить страницу содержимого для изменения управления главной страницы - PullRequest
1 голос
/ 06 марта 2011

Главная страница:

<form runat="server">
<Scirra:MainMenu runat="server" ID="MainMenu" TopTabSelected="home" SubTabSelected="link2" />
<asp:ContentPlaceHolder id="MainContent" runat="server">
snip

Страница содержания:

Master.MainMenu.TopTabSelected = "forum";

Я знаю, что, возможно, я делаю это неправильно, но возможно ли это? Я хочу изменить параметр этого элемента управления. Там написано 'inaccessible due to protection level'.

Ответы [ 2 ]

2 голосов
/ 06 марта 2011

Вы должны предоставить публичное свойство f.e MenuTabSelected в вашей MasterPage, которое получает / устанавливает это свойство вашего меню.

public string MenuTabSelected {
    get { return MainMenu.TopTabSelected; }
    set { MainMenu.TopTabSelected = value; }
}

Тогда вы можете получить к нему доступ таким образом:

((YourMasterPage)Master).MenuTabSelected = "forum";

где YourMasterPage - это тип вашей MasterPage.

Ошибка компилятора, потому что вы хотите получить доступ к частному или защищенному элементу управления вне вашего MasterPage-Class. Это будет разрешено только в том случае, если оно будет общедоступным, что не рекомендуется . У вас есть больше контроля, если вы делаете это так, как я предложил:)

0 голосов
/ 03 января 2013

найти пункты меню на странице содержимого и изменить его значение

protected void Page_Load(object sender, EventArgs e)
{


Menu mainMenu = (Menu)Page.Master.FindControl("NavigationMenu");

MenuItem menuMaterials = mainMenu.FindItem("Materials");

    if (menuMaterials.Value == "Materials")
    {
         menuMaterials.Value = "NO materials";
        menuMaterials.Text = "No materials";
    }

}   
...