Я думаю, что мой вопрос вращается вокруг меня, не имея удобного понимания жизненного цикла страницы в ASP.net, к сожалению. Я читал много, но его много, чтобы взять, извините! в любом случае им пытаются сделать супер простую страницу как доказательство концепции, что я буду делать через весь сайт, чтобы сначала я только после того, что у меня есть:простая страница входа и динамическое скрытие элементов управления на основе переменной сеанса
ASPX:
<asp:Button ID="btnLogin" runat="server" Text="Login"
onclick="btnLogin_Click" />
<hr />
<asp:Label ID="Label1" runat="server" Text="Regular User"></asp:Label>
<asp:TextBox ID="TextBox1" runat="server">Regular User</asp:TextBox>
<asp:Button ID="Button1" runat="server" Text="Regular User" />
<hr />
<asp:Label ID="Label2" runat="server" Text="Admin"></asp:Label>
<asp:TextBox ID="TextBox2" runat="server">Admin</asp:TextBox>
<asp:Button ID="Button2" runat="server" Text="Admin" />
ASPX.CS:
protected void Page_Load(object sender, EventArgs e)
{
String admin = (String)(Session["admin"]) ?? "";
if (!admin.Equals("true"))
{
Label2.Visible = false;
TextBox2.Visible = false;
Button2.Visible = false;
}
}
protected void btnLogin_Click(object sender, EventArgs e)
{
Session["admin"] = "true";
}
Поэтому я хочу, чтобы все случайные элементы управления скрывались после того, как пользователь «становится администратором», иначе переменная переменной сеанса. Моя проблема в том, что элементы управления не скроют себя напрямую после нажатия кнопки. Я должен освежиться или уйти и вернуться. Рассматривая проблемы жизненного цикла страницы, прежде чем я думаю, что это то, что испортило, возможно, мне просто нужно отключить видимость в функции, отличной от Page_Load? В любом случае, может быть 100% лучший и простой способ сделать это в целом, и я открыт для этого, просто знаю, спасибо - спасибо!
этот ответ, кажется, имеет смысл по какой-то причине я все еще имеющего перемещаться в сторону и вернуться к странице изменения на самом деле появляются только. любые идеи почему? – chilleo
@chilleo Поскольку ваше состояние по умолчанию вышло из системы, и когда вы входите в систему, у вас не было никакого кода, чтобы установить видимость на true. См. Мое обновление. – pseudocoder
WOW! Сегодня я полностью извиняюсь. красивый ответ, и это имеет смысл, спасибо вам очень много! дело закрыто – chilleo