В "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"... Какая-то помощь?
Чтобы мочь соглашаться на свойства Степени магистра ты должен показывать ему в страницу тип Степени магистра для того, чтобы ты смог иметь доступ к Вашему 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;
}
}
Используй Панель :
Пример:
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;
}
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, однажды имейте этот пойдите мы можем захватывать или распределять стоимость. Любое сомнение ты можешь оставлять мне сообщение. Привет.