Echange de valeurs entre 3 pages (transfer / execute)

Contenu du snippet

on passe les valeurs de webForm1 vers webForm2 et dans webForm2 on execute celles de webForm3

Source / Exemple :


------------------------
webForm1.aspx
------------------------
<%@ Page Language="vb" AutoEventWireup="false" Codebehind="webForm1.aspx.vb" Inherits="ymages.passeValeurs.webForm1"%>
<html>
  <head>
    <title>webForm1</title>
  </head>
  <body>
    <form id="frm" method="post" runat="server">

    </form>
  </body>
</html>
------------------------
webForm1.aspx.vb
------------------------
Namespace passeValeurs
    Public Class webForm1
        Inherits Page

        <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()

        End Sub

        Private Sub Page_Init(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Init
            InitializeComponent()
        End Sub

        Private Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load
            Server.Transfer("webForm2.aspx")
        End Sub

        Public ReadOnly val_1 As String = "bonjour"

        Public ReadOnly Property val_2() As String
            Get
                Return (" ca va")
            End Get
        End Property

        Public Function val_3() As String
            Return ("<br />oui et toi ?")
        End Function
    End Class
End Namespace
------------------------
webForm2.aspx
------------------------
<%@ Page Language="vb" AutoEventWireup="false" Codebehind="webForm2.aspx.vb" Inherits="ymages.passeValeurs.webForm2"%>
<html>
  <head>
    <title>webForm2</title>
  </head>
  <body>
    <form id="frm" method="post" runat="server">

    </form>
  </body>
</html>
------------------------
webForm2.aspx.vb
------------------------
Namespace passeValeurs
    Public Class webForm2
        Inherits Page
        <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()

        End Sub

        Private Sub Page_Init(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Init
            InitializeComponent()
        End Sub

        Private Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load

            Dim wf1 As webForm1 = CType(Context.Handler, webForm1)

            Me.Controls.Add(New LiteralControl("valeurs du webForm1<br />"))
            Me.Controls.Add(New LiteralControl(wf1.val_1))
            Me.Controls.Add(New LiteralControl(wf1.val_2))
            Me.Controls.Add(New LiteralControl(wf1.val_3))

            Me.Controls.Add(New LiteralControl("<hr />valeurs du webForm2"))

            Dim writer As New StringWriter()
            Server.Execute("webForm3.aspx", writer)
            Me.Controls.Add(New LiteralControl(writer.ToString))

        End Sub
    End Class
End Namespace
------------------------
webForm3.aspx
------------------------
<%@ Page Language="vb" AutoEventWireup="false" Codebehind="webForm3.aspx.vb" Inherits="ymages.passeValeurs.webForm3"%>
<html>
  <head>
    <title>webForm3</title>
  </head>
  <body>
    <form id="frm" method="post" runat="server">

    </form>
  </body>
</html>
------------------------
webForm3.aspx.vb
------------------------
Namespace passeValeurs
    Public Class webForm3
        Inherits Page

        <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()

        End Sub

        Private Sub Page_Init(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Init
            InitializeComponent()
        End Sub
        Private Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load
            Me.Controls.Add(New LiteralControl("<hr />valeurs du webForm3"))
        End Sub
    End Class
End Namespace

Conclusion :


NameSpace = ymages.passeValeurs a remplacer par le votre = machin.passeValeurs

le code est au plus simple afin de rester clair ,
on peut evidemment passer autant de valeurs qu'on veut en ajoutant d?autres property ou des methodes

les lignes du type
Codebehind="webForm1.aspx.vb" Inherits="ymages.passeValeurs.webForm1"%
sont pour visual studio

pour un autre editeur remplacer Codebehind par src

-------------------------------------------------------------------------------------------
erb

ebwm@ymages.com

http://ymages.com
http://isocele.net

-------------------------------------------------------------------------------------------

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.