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