2013-08-15 8 views
2

Я пытаюсь получить значения текстового поля с моей главной страницы asp. Я прошу пользователя ввести его имя и фамилию в соответствующие текстовые поля. Затем я нажимаю кнопку отправки, и кнопка возвращает меня на другую веб-страницу с именем DefaultPage.aspx ... Кнопка выводит меня на новую страницу, но значения текстовых полей не отправляются и не отображаются на новой странице.Извлечение данных страницы с помощью строки запроса

Вот мой код:

ASP код для кнопки:

asp:Button ID="Submit" runat="server" Text="Button" OnClick="Submit_Click" 

Вот код моего главного Пейджа:

protected void Submit_Click(object sender, EventArgs e) 
{ 
    Response.Redirect("DefaultDetails.aspx?FirstName=" + txtFirstName.Text + "&LastName=" + txtLastName.Text); 
} 

А вот мой по умолчанию/новые страницы код:

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (PreviousPage != null) 
    { 
     string firstName = Request.QueryString["FirstName"]; 
     string lastName = Request.QueryString["LastName"]; 

    } 
} 

Здесь мой код для 2 текстовых полей:

 <asp:TextBox ID="txtFirstName" runat="server"></asp:TextBox> 
     <asp:TextBox ID="txtLastName" runat="server"></asp:TextBox> 

Когда я вставить разрыв в первой строки строки (т.е. ПгвЬЫате на новой странице) значения внутри из ПгвЬЫате и LastName, равны нулю.

+0

Вы создаете текстовое поле ? контроль динамически – Anand

+0

вы пробовали перечисляя querystrings другой способ Попробуйте это, и посмотреть, если он по-прежнему нулевой Еогеасп (строка с в Request.QueryString) { Response.Write (Request.QueryString [s])?. } – Chris

+0

что это такое Предыдущая страница! = Null – Anand

ответ

0

Вы должны использовать:

Server.Transfer("DefaultDetails.aspx?FirstName=" + txtFirstName.Text + "&LastName=" + txtLastName.Text); 

Из Page.PreviousPage Property статьи:

При использовании метода передачи или использования кросс-страничный проводки для передачи обработки с одной страницы на другую ASP.NET , исходная страница содержит информацию о запросе, которая может потребоваться для целевой страницы . Вы можете использовать свойство PreviousPage для доступа к этой информации .

Если текущая страница визуализируется в результате прямого запроса (не передача или кросс-пост с другой страницы), то ПредыдущаяСтраница свойство содержит нуль.

На самом деле, если бы вы передать запрос, следующее должно быть достаточно:

Server.Transfer("DefaultDetails.aspx"); 

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

if (PreviousPage != null) 
{ 
    string firstName, lastName; 
    var txtFirstName = (TextBox)PreviousPage.FindControl("txtFirstName"); 
    var txtLastName = (TextBox)PreviousPage.FindControl("txtLastName"); 
    if (txtFirstName != null) 
     firstName = txtFirstName.Text; 
    if (txtLastName != null) 
     lastName = txtLastName.Text; 
} 
+0

если я использую server.transfer am, я все еще использую строку запроса ?? –

1

одним из новую страницу, удалить условие предыдущей страницы и проверить погоду, которую вы видите, или нет. Где эта переменная ПредыдущаяСтраница быть установлен

protected void Page_Load(object sender, EventArgs e) 
{ 
    string firstName = Request.QueryString["FirstName"]; 
    string lastName = Request.QueryString["LastName"]; 
} 
+0

Я удалил его, и значение все равно null .. –

0

Вы можете попробовать это

string Ln=Request["txtFirstName"].toString(); 
string Fn=Request["txtLastName"].toString(); 
0

Причина является PreviousPage равна нулю. Таким образом, ваше имя firstName и lastName не будет инициализировано.

«Когда вы используете метод передачи или используете межстраничную проводку для передачи обработки из одного ASP.NET на другую, исходная страница содержит информацию о запросе, которая может потребоваться для целевой страницы. Вы можете использовать свойство PreviousPage для доступа к этой информации. Если текущая страница визуализируется в результате прямого запроса (не передачи или кросс-пост с другой страницы), свойство PreviousPage содержит нуль.»

Пожалуйста, ссылки enter link description here