mohamadMahmodi Ответов: 3

Как получить доступ к HTML-элементу page1.aspx из page2.aspx.cs


это несколько входных элементов,таких как checkbox и text type в page1.aspx, которые я хочу получить доступ к их свойствам(значение для типа текста и проверенное свойство для checkbox и их имен) в событии page_load другой страницы.aspx.cs, как я могу обойтись без них
session["x"]
или
.findcontrol("x")
и
Request.["x"]
решение?

спасибо всем

Что я уже пробовал:

запрос.форма["х"]
findcontrol ("x")

3 Ответов

Рейтинг:
1

Dave Kreskowiak

Во время выполнения form1 не существует, пока отображается form2. HTTP работает над настройкой запроса/ответа. Браузер делает запрос, сервер возвращает запрошенную страницу. В этот момент соединение умирает, и сервер даже забывает о вашем существовании.

Если вы запросили форму 2, то форма 1 вообще никогда не входит в процесс запроса/ответа. Его не существует. Поэтому, если вам нужно передать значение из Form1 в Form2, вы должны сохранить это значение где-то после того, как форма на Form1 будет отправлена на сервер. Сервер может либо сохранить это значение в качестве объекта сеанса, либо в базе данных, либо в каком-либо другом хранилище для использования в последующем запросе. Кроме того, ответ сервера на отправку формы может быть получен с помощью Form2 и использовать значение из отправки Form1.


Рейтинг:
0

Kornfeld Eliyahu Peter

Эти две страницы живут в другой вселенной, поэтому между ними нет простого перекрестного доступа...
Использование объекта сеанса может быть решением (если будет предоставлено, что у вас есть один и тот же сеанс между двумя страницами), но для этого вы сначала должны поместить эти значения в сеанс...
Вы также должны спросить себя: всегда ли я использую страницу 2 после страницы 1?
Если ответ "да", вы можете использовать старую и хорошую цель отправки HTML для передачи значений...Это передаст все скрытые поля на целевую страницу в виде значений строки запроса...
< форма> - HTML | MDN[^]


mohamadMahmodi

форма form1(стр. 1) известно в страница2.КС технологии IntelliSense ,я могу послать ценностей через сессии, но почему форма form1 известно в страница2.КС ,похоже, что это способ получить доступ к форме form1 элементы?
(да,всегда выполняются после страница1 страница2 и платформы для C# asp.net форму)

pparya27

пусть он будет известен... но он будет иметь ценность, когда его объект будет создан. как только сервер отправит клиенту форму 1, он забудет об этом. поэтому, если вы хотите, чтобы form2 знал некоторые данные из form1, то вы должны хранить их где-то вроде сеанса, файлов cookie или базы данных.

Kornfeld Eliyahu Peter

..или вы можете отправить эти данные непосредственно с клиента страницы 1 на сервер страницы 2...

Рейтинг:
0

pparya27

Взглянуть :

Форма 1 :
=======

<form id="form1" runat="server">
  <div>
      <asp:Label ID="lblForm1" runat="server" Text="Form 1 Data"></asp:Label>&nbsp;&nbsp;
      <asp:TextBox ID="txtForm1" runat="server"></asp:TextBox>&nbsp;&nbsp;
      <asp:Button ID="btnForm1" runat="server" Text="Button" onclick="btnForm1_Click" />

  </div>
  </form>


protected void btnForm1_Click(object sender, EventArgs e)
   {
       Session["data1"] = txtForm1.Text;
       Response.Redirect("Form2.aspx");
   }



Форма 2 :
=========

<form id="form2" runat="server">
<div>

    <asp:Label ID="lblForm2" runat="server" Text="Form 2 Data (from session variable)"></asp:Label>&nbsp;&nbsp;
    <asp:TextBox ID="txtForm2" runat="server"></asp:TextBox>&nbsp;&nbsp;

</div>
</form>



protected void Page_Load(object sender, EventArgs e)
    {
        if (Session["data1"] != null)
        {
            txtForm2.Text = Session["data1"].ToString();
        }
    }