2013-05-28 6 views
1

У меня есть Page1.aspx, содержащиеуправления Чтение с предыдущей страницы в ASP.NET

Name: <asp:TextBox ID="txt1" runat="server" /> 

Page2.aspx пытается получить доступ к его содержимое,

TextBox txt2 = (TextBox)PreviousPage.FindControl("txt1"); 

Однако я в конечном итоге получить ссылку на объект не указывает на экземпляр исключение объекта

+0

Проверьте эти ссылки: http://msdn.microsoft.com/en-us/library/ms178140(v=vs.80).aspx и http://msdn.microsoft.com/en-us/library /6c3yckfw(v=vs.80).aspx – Saravanan

+0

Вы направляетесь на страницу2.aspx с переводом или переходом на другую страницу? В противном случае это не сработает. См. Раздел [примечание] (http://msdn.microsoft.com/en-us/library/system.web.ui.page.previouspage.aspx) – mshsayem

+1

Если вам нужно только 1 или 2 значения предыдущей страницы, вы можете сохраните значения в Cookie и передайте значение с помощью querystring. Если вы создаете объект предыдущей страницы, тогда все данные будут загружаться, поэтому это снизит производительность. –

ответ

3

Я использовал PreviousPage раньше и имел успех с этим фрагментом кода, который я нашел в другом месте в Интернете (не могу вспомнить Бер, где я его нашел)

So ..

Вариант 1:

На вашей первой странице у вас есть кнопка, которая принимает вас на второй странице, вам необходимо установить свойство PostBackUrl на новый URL страницы:

<asp:Button ID="button1" Runat="server" Text="submit" PostBackUrl="~/Page2.aspx" /> 

(Это предполагая, что ваша первая страница является формой, которая перенаправляет на ваш Page2.aspx)

Затем в коде новой страницы позади вы должны написать что-то вдоль линий этого:

public void page_load() 
{ 
if(!IsPostBack) 
{ 
TextBox tb = (TextBox)PreviousPage.FindControl("txt2"); 
Response.Write(tb.Text);} 
} 

Вам необходимо будет передать значение предыдущей страницы-х txt2.Text в текстовое поле или метка на новой странице если вы хотите сделать еще несколько обратных ссылок на второй странице, в противном случае вы потеряете это значение.

Вариант 2:

Вы также можете использовать переменную Session, безусловно, для хранения данных ?!

Session["text"] = txt2.Text; 
-2

Как только вы на новой странице, последняя страница, вероятно, исчезла, я бы предложил передать ваши данные по сеансу.

Смежные вопросы