Question

Supposons que j'ai deux champs de texte dans une page, un pour le nom et l'autre pour l'âge.

Quand je clique sur le bouton d'envoi de ces valeurs doit apparaître dans une autre page. Peut-on donner l'exemple pour que l'on .. Je suis totalement confus.

S'il vous plaît me aide Merci

Était-ce utile?

La solution

MSDN a une page sur ce point, Comment: des valeurs d'une ASP.NET Pages Web :

Les options suivantes sont disponibles même si la page source est dans une autre application Web ASP.NET à partir de la page cible, ou si la page source n'est pas une page Web ASP.NET:

  • Utiliser une chaîne de requête.
  • informations HTTP POST de la source de la page.

Les options suivantes ne sont disponibles que lorsque la source et les pages cibles sont dans le même ASP.NET Web application.

  • Utiliser l'état de session.
  • Créer des propriétés publiques dans la page source et l'accès aux valeurs de propriété dans la page cible.
  • Obtenir des informations de contrôle dans la page cible de contrôles dans la page source.

Pour votre scénario, il semble que l'utilisation POST est le chemin à parcourir, puisque vous avez sur la première textboxes page. Exemple:

Première page:

<%@ 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>

Notez que le action="WebForm2.aspx" qui dirige le POST à ??la deuxième page. Il n'y a pas de code-behind.

Page 2 (page d'accueil):

<%@ 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>

Notez l'attribut de EnableViewStateMac="false" sur l'élément page. Il est important.

Le code-behind, saisissant les valeurs à l'aide d'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

Cela devrait fonctionner ...:)

Autres conseils

Mettre ce code à votre soumettre gestionnaire d'événements bouton,

private void btnSubmit_Click (objet expéditeur, System.EventArgs e) { Response.Redirect ( "AnotherPage.aspx? Name =" + This.txtName.Text + "& âge =" + this.txtAge.Text); }

Mettre ce code deuxième page page_load,

private void Page_Load (expéditeur d'objet, System.EventArgs e) { this.txtBox1.Text = Request.QueryString [ "nom"]; this.txtBox2.Text = Request.QueryString [ "âge"]; }

Vous avez deux options. **

1. Utiliser la chaîne de requête.


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

2. Utilisez session

(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
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top