Я думаю, что мой вопрос вращается вокруг того, что у меня, к сожалению, нет удобного понимания жизненного цикла страницы в 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% лучший и более простой способ сделать это в целом, к которому я открыт, так что просто дайте мне знать - спасибо!