2013-05-19 2 views
3

Я пытаюсь передать значение переменной из одной страницы на другую, используя кросс страницы после обратной с помощью этого кода:Cross отправки сообщений не работает

на page1:

<asp:TextBox ID="changepwd" runat="server"></asp:TextBox> 

<asp:Button ID="ChangePassword" runat="server" Text="Change Password" 
PostBackUrl="~/Page2.aspx" /> 

Я назначен его значение во время выполнения из базы данных в файле CS, как: changepwd.Text = dataSet.Tables[0].Rows[0]["empPassword"].ToString();

на странице 2: в случае загрузки страницы:

protected void Page_Load(object sender, EventArgs e) 
    { 
     if (PreviousPage != null && PreviousPage.IsCrossPagePostBack) 
     { 
      TextBox txt = (TextBox)PreviousPage.FindControl("changepwd"); 
      TextBox1.Text = txt.Text; 
     } 
    } 

но я не получаю значение с предыдущей страницы. Я получаю значение как null. На стр. 1 Я правильно получаю значение из базы данных, но он не передается на страницу 2. Не могли бы вы рассказать мне, почему?

+0

Является ли ваше текстовое поле непосредственно в контейнере имен страницы 1 или в каком-либо другом элементе управления на странице? [Документация] (http://msdn.microsoft.com/en-us/library/ms178139 (v = vs.100) .aspx) говорит: * Метод FindControl находит элементы управления в текущем контейнере имен. Если элемент управления, который вы ищете, находится внутри другого элемента управления (как правило, внутри шаблона), вы должны сначала получить ссылку на контейнер, а затем выполнить поиск в контейнере, чтобы найти элемент управления, который хотите получить. * – Netricity

+0

нет. другой контроль – Seema

+0

вы используете мастер-страницы? – Alok

ответ

0

Надежда его помогает и:

Page 1:

<asp:TextBox ID="changepwd" runat="server"></asp:TextBox> 

<asp:Button ID="btnChangePassword" runat="server" Text="Change Password" 
PostBackUrl="~/Page2.aspx" /> 

Page 1 За Код:

public TextBox ChangePassword 
{ 
    get 
    { 
     return changepwd; 
    } 
} 

Page 2: определить это на странице заголовок:

<%@ PreviousPageType VirtualPath="~/Page1.aspx" %> 

Page 2 За кодом:

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (Page.PreviousPage != null && PreviousPage.IsCrossPagePostBack == true) 
    { 
     TextBox1.Text = PreviousPage.ChangePassword.Text; 
    } 
} 
Смежные вопросы