Я пытаюсь создать веб-форму asp, которая отправляет данные в другую веб-форму.Невозможно передать данные с одной страницы контента на другую с помощью главной страницы
Я сделал два отдельных проекта, один из которых использует главную страницу, а другой - нет.
Senario:
WebForm1.aspx имеет два текстовых поля и кнопку
<table>
<tr>
<td >Name:</td>
<td >
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
</td>
<td class="auto-style1"></td>
</tr>
<tr>
<td>Id:</td>
<td>
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
</td>
<td> </td>
</tr>
<tr>
<td> </td>
<td>
<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
</td>
<td> </td>
</tr>
</table>
WebForm2.aspx.cs представить две метки, которые должны отображаться на данные, полученные от WebForm1.aspx
Page prevPage = this.PreviousPage;
if (prevPage != null)
{
Label1.Text = ((TextBox)prevPage.FindControl("TextBox1")).Text;
Label2.Text = ((TextBox)prevPage.FindControl("TextBox2")).Text;
}
Дело 1: [Публикация без главной страницы]
Данные для заказа обычно.
Случай 2: [Проводка с главной страницы]
я NullReferenceException.
Так что я сломал код.
Page prevPage = this.PreviousPage;
if (prevPage != null)
{
ControlCollection collec = prevPage.Controls;
Control ctrl= prevPage.FindControl("TextBox1");
TextBox txtbx = (TextBox)ctrl;
Label1.Text = txtbx.Text; //Exception raised here
Label2.Text = ((TextBox)prevPage.FindControl("TextBox2")).Text;
}
Во время отладки: я выполнил "collec.Count" в окне Immediate.
Случай 1: [Проводка без главной страницы]
collec.Count возвращается
Случай 2: [Проводка с главной страницы]
collec.Count возвращенного [ ЗАЧЕМ? ]
Позже
Я пытался передать данные с помощью свойств
WebForm1.aspx.cs
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
Server.Transfer("WebForm2.aspx");
}
public string Name { get { return TextBox1.Text; } }
public string ID { get { return TextBox2.Text; } }
WebForm2.aspx.cs
WebForm1 prevPage = (WebForm1)this.PreviousPage;
if (prevPage != null)
{
ControlCollection c = prevPage.Controls;
Label1.Text = prevPage.Name;
Label2.Text = prevPage.ID;
}
, и теперь он работает правильно, даже с главной страницей.
Так может кто-нибудь объяснить мне, что происходит, и почему публикация с одной страницы контента на другую страницу контента с мастером, дающим мне NullReferenceException?
Thankyou! Это решает мою проблему. Но я до сих пор не понимаю, почему Master.FindControl() требуется, когда мы переходим с одной страницы контента на другую страницу контента? – gaganKapula
Предыдущая страница - это страница контента, основанная на главной странице. – Aria