Доступ к свойствам флажка с помощью кнопки ссылки на другой странице в ASP.NET

#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. спасибо, спасибо 🙂