#c# #asp.net #webforms
#c# #asp.net #веб-формы
Вопрос:
Я создаю веб-приложение, используя asp.net Я хотел бы знать, как изменить свойства флажка одной страницы с другой страницы: Например: на моей странице Page2.aspx установлен флажок с идентификатором checkbox1, и по умолчанию его видимость равна false. Теперь мне нужно установить видимость checkbox1 в значение true с другой страницы Page1.aspx с событием нажатия кнопки ссылки с идентификатором linkbutton1. любая помощь в этом отношении, пожалуйста?
Ответ №1:
Поскольку Веб не имеет состояния, каждая страница на веб-сайте .NET или в веб-приложении загружается независимо друг от друга. Следовательно, вы не можете напрямую управлять элементами в одном .aspx из другого .aspx.
Однако вы могли бы сохранить желаемые настройки для элемента управления, когда Page1.aspx отправляет ответ, а затем использовать настройки, сохраненные с Page1.aspx, для загрузки желаемых настроек при загрузке Page2.aspx.
Я не большой поклонник использования управления сеансами, но что-то вроде этого сработало бы:
Следующее событие может существовать на первой странице.
protected void btnPageOne_Click(object sender, EventArgs e)
{
Session["PageTwoIsChecked"] = true;
}
Затем, когда загружена вторая страница, вы можете проверить информацию о сеансе, указанную на первой странице.
protected void Page_Load(object sender, EventArgs e)
{
if (Session["PageTwoIsChecked"] != null amp;amp; Convert.ToBoolean(Session["PageTwoIsChecked"]) == true)
{
chkPageTwo.Visible = true;
}
}
Я надеюсь, что это поможет!
Ответ №2:
Вы также можете использовать этот подход
страница 1.aspx
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:linkbutton ID="Linkbutton1" runat="server" onclick="Linkbutton1_Click">LinkButton</asp:linkbutton>
</div>
</form>
</body>
</html>
страница 1.aspx.cs
protected void Linkbutton1_Click(object sender, EventArgs e)
{
Response.Redirect("page2.aspx?visible=1");//this is how to control the visibility
}
и page2.aspx.cs
protected void Page_Load(object sender, EventArgs e)
{
//Request.QueryString["visible"].ToString() will be same
if (Request.QueryString[0].ToString() != "1")
{
CheckBox1.Visible = false;
}
else
{
CheckBox1.Visible = true;
}
}
Комментарии:
1. спасибо, спасибо 🙂