Как соглашаться на свойство степени магистра page со страницы ASPX

В "Site.master" у меня есть созданный брусок навигации или navbar, что начинается так:

<div class="navbar navbar-inverse navbar-fixed-top" runat="server" id="navegador" visible="false">
...
</div>

Как он наблюдается, я считаю помещенным "видимый" признак в "false", потому что я хочу, чтобы он был видимым единственно, когда пользователь будется logueado. На файл, в котором находится формуляр для loguearse, "Default.aspx.cs", мне хотелось бы менять это свойство (свойство "видимого") в "true" когда пользователь loguea правильно, но я не могу соглашаться на элемент "navegador.visible" с этого файла, потому что это не элемент, который принадлежал бы "Default.aspx", а "Site.master"... Какая-то помощь?

1
задан 25.07.2016, 20:14
3 ответа

Чтобы мочь соглашаться на свойства Степени магистра ты должен показывать ему в страницу тип Степени магистра для того, чтобы ты смог иметь доступ к Вашему propiedadades способа strongly-typed.

Для этого ты должен использовать директивный орган <%@ MasterType %>

Например:

<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="SiteMaster._Default" %>
<%@ MasterType VirtualPath="~/Site.Master" %>

После этого ты должен создавать публичное свойство в codebehind степени магистра, которая герметизирует в корпусе свойства, которые ты хочешь изменить для того, чтобы она смогла быть соглашенной с другого класса, в этом случае с твоей страницы. Например:

public partial class SiteMaster : MasterPage
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }

    public bool NavegadorVisible
    {
        get { return navegador.Visible; }
        set { navegador.Visible = value; }
    }

    // o si deseas todo el div
    public HtmlGenericControl Navegador => navegador;
}

После этого уже ты можешь соглашаться на степень магистра посредством свойства Master со страницы. Ты можешь делать это с codebehind или с aspx.

Если он с .aspx уже ты можешь соглашаться прямо. Пример:

<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="SiteMaster._Default" %>

<%@ MasterType VirtualPath="~/Site.Master" %>

<asp:Content ID="BodyContent" ContentPlaceHolderID="MainContent" runat="server">
    <%
        Master.NavegadorVisible = false;
        // o
        Master.Navegador.Visible = false;
    %>
    ...
</asp:Content>

Если он будет с codebehind, ты будешь нуждаться castearlo, так как директивный орган <%@ MasterType %> только функционируй в aspx.

public partial class _Default : Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        ((SiteMaster)Master).NavegadorVisible = false;
        // o
        ((SiteMaster)Master).Navegador.Visible = false;
    }
}
2
ответ дан 24.11.2019, 13:47
  • 1
    #161; Much и # 237; пропасти спасибо, Карлос! Я могу соглашаться на men и # 250; и скрывать это согласно login, как он желал. Я дал tick твоего сообщения для того, чтобы он клался в зелени, не s и # 233; если я должен делать м и # 225; s, чтобы устанавливать доброту твоего ответа. Объятие и тысяча спасибо! – Saulo 26.07.2016, 20:33
  • 2
    Tambi и # 233; n ты можешь голосовать за позитив в этот ответ на другие, если tambi и # 233; n они помогли тебе, независимо каков избранный ответ. – Carlos Muñoz 26.07.2016, 20:39

Используй Панель :

Пример:

CГіdigo ASPX:

<asp:Panel ID="navegador" runat=server" CssClass="navbar navbar-inverse navbar-fixed-top" Visible="false">
...
</asp:Panel>

CГіdigo C#:

// En tu lógica de login aplica:
Boolean = estaLogueado = false; // Ejemplo.
if (estaLogueado) {
   navegador.Visible = true;
}
0
ответ дан 24.11.2019, 13:47
  • 1
    Это не решает проблему соглашения на свойство Степени магистра с нее p и # 225; gina – Carlos Muñoz 25.07.2016, 17:50
  • 2
    @CarlosMu и # 241; oz, у тебя есть raz и # 243; n. tambi и # 233; n могут " в teor и # 237; a" искать контроль используя FindControl; однако, я это не попробовал. Спасибо за комментарий. – Mauricio Arias Olave 25.07.2016, 17:54

Привет, если ты имеешь в виду звонить в контроль MasterPage, с другого вида. Я могу помогать тебе с этим.

HtmlTitle tituloPagina = this.Master.FindControl("tituloPagina") as HtmlTitle;

"tituloPagina": Это элемент образцовой страницы, asГ-.

<title data-id="titulo" runat="server" id="tituloPagina"></title>

Позвонил в этот контроль посредством id, однажды имейте этот пойдите мы можем захватывать или распределять стоимость. Любое сомнение ты можешь оставлять мне сообщение. Привет.

0
ответ дан 24.11.2019, 13:47

Теги

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