Pregunta

Supongamos que tengo dos campos de texto en una página, uno por nombre y otro para la edad.

Cuando hago clic en el botón Enviar, esos valores deben aparecer en otra página. ¿Alguien puede dar el ejemplo de ese ... Estoy totalmente confundido?

por favor ayúdame gracias

¿Fue útil?

Solución

MSDN tiene una página sobre esto, Cómo: pasar valores entre las páginas web ASP.NET:

Las siguientes opciones están disponibles incluso si la página de origen está en una aplicación web ASP.NET diferente desde la página de destino, o si la página de origen no es una página web ASP.NET:

  • Use una cadena de consulta.
  • Obtenga información de publicación HTTP de la página fuente.

Las siguientes opciones están disponibles solo cuando las páginas de origen y destino están en la misma aplicación web ASP.NET.

  • Use el estado de la sesión.
  • Cree propiedades públicas en la página de origen y acceda a los valores de las propiedades en la página de destino.
  • Obtenga información de control en la página de destino desde los controles en la página de origen.

Para su escenario, parece que usar POST es el camino a seguir, ya que tiene cuadros de texto en la primera página. Ejemplo:

Primera página:

<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="WebForm1.aspx.vb" Inherits="WebApplication2.WebForm1" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
  <title>Page 1</title>
</head>
<body>
  <form id="form1" runat="server" action="WebForm2.aspx">
  <div>
    Name: <asp:TextBox ID="tbName" runat="server"></asp:TextBox><br />
    Age: <asp:TextBox ID="tbAge" runat="server"></asp:TextBox><br />
    <asp:Button ID="submit" runat="server" Text="Go!" />
  </div>
  </form>
</body>
</html>

Observe la action="WebForm2.aspx" lo que dirige la publicación a la segunda página. No hay código-behind.

Página 2 (página receptor):

<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="WebForm2.aspx.vb" Inherits="WebApplication2.WebForm2" EnableViewStateMac="false" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Page 2</title>
</head>
<body>
    <form id="form1" runat="server">
    <asp:Literal ID="litText" runat="server"></asp:Literal>
    </form>
</body>
</html>

Observe la EnableViewStateMac="false" atributo en el elemento de página. Es importante.

El código de código, obteniendo los valores usando un simple Request.Form():

Public Class WebForm2
  Inherits System.Web.UI.Page

  Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    litText.Text = Request.Form("tbName") & ": " & Request.Form("tbAge")
  End Sub
End Class

Eso debería funcionar... :)

Otros consejos

Pon este código en el controlador de eventos de su botón de envío,

Private void btnsubmit_click (remitente de objeto, system.eventargs e) {respuesta.redirect ("otherPage.aspx? name =" + this.txtname.text + "& age =" + this.txtage.text); }

Coloque este código en la segunda página Page_Load,

private void page_load (remitente de objeto, system.eventargs e) {this.txtbox1.text = request.querystring ["name"]; this.txtbox2.Text = request.queryString ["edad"]; }

Tienes unas cuantas opciones. **

1. Use la cadena de consulta.


(Cons)
  - Text might be too lengthy 
  - You might have to encrypt/decrypt query string based on your requirement 
(Pros)
  - Easy to manage

2. Use la sesión

(Cons)
  - May increase processing load on server
  - You have to check and clear the session if there are too many transactions
(Pros) 
  - Values from different pages, methods can be stored once in the session and retrieved from when needed
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top