'this is the 2nd page in a series of 4
'but it illustrates how to handle
'data coming either from the first page (page 1)
'or page 3 (if the user hits previous on page 3)
Public Class VehicleWiz2
Inherits System.Web.UI.Page
#Region " Web Form Designer Generated Code "
'This call is required by the Web Form Designer.
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
End Sub
Protected WithEvents Button1 As System.Web.UI.WebControls.Button
Protected WithEvents tbVIN As System.Web.UI.WebControls.TextBox
Protected WithEvents tbVehicleModel As System.Web.UI.WebControls.TextBox
Protected WithEvents tbVehicleYear As System.Web.UI.WebControls.TextBox
Protected WithEvents ddlVehicleMake As System.Web.UI.WebControls.DropDown
Protected WithEvents ddlVehicleStyle As System.Web.UI.WebControls.DropDown
Protected WithEvents ddlVehicleColor As System.Web.UI.WebControls.DropDown
Protected WithEvents CheckBox1 As System.Web.UI.WebControls.CheckBox
Protected WithEvents btnPrev As System.Web.UI.WebControls.Button
Protected WithEvents btnNext As System.Web.UI.WebControls.Button
'NOTE: The following placeholder declaration is required by the Web Form Designer.
'Do not delete or move it.
Private designerPlaceholderDeclaration As System.Object
Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
'CODEGEN: This method call is required by the Web Form Designer
'Do not modify it using the code editor.
InitializeComponent()
End Sub
#End Region
[b]'this allows other pages to retrieve dataset from
'this page
Public ReadOnly Property Vehicle() As String
Get
Return Me.ViewState("vehicledata")
End Get
End Property
[/b]
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'Put user code to initialize the page here
Dim _vehicledataset As New DataSet
If Not IsPostBack Then
[b] If TypeOf context.Handler Is VehicleWiz1 Then
'came from page 1
Dim v1 As VehicleWiz1 = DirectCast(context.Handler, VehicleWiz1)
_vehicledataset.ReadXml(New System.IO.StringReader(v1.Vehicle), XmlReadMode.ReadSchema)
v1.Dispose()
Else
'came from page 3
Dim v3 As VehicleWiz3 = DirectCast(context.Handler, VehicleWiz3)
_vehicledataset.ReadXml(New System.IO.StringReader(v3.Vehicle))
v3.Dispose()
End If
[/b]
Me.tbVehicleModel.Text = _vehicledataset.Tables(0).Rows(0).Item(13)
Me.tbVehicleYear.Text = _vehicledataset.Tables(0).Rows(0).Item(9)
Me.tbVIN.Text = _vehicledataset.Tables(0).Rows(0).Item(7)
Me.ddlVehicleColor.SelectedValue = _vehicledataset.Tables(0).Rows(0).Item(12)
Me.ddlVehicleMake.SelectedValue = _vehicledataset.Tables(0).Rows(0).Item(11)
Me.ddlVehicleStyle.SelectedValue = _vehicledataset.Tables(0).Rows(0).Item(10)
'add the dataset to this page's viewstate
'which is useful if we postback to the same page for some reason
[b] Dim sw As New System.IO.StringWriter
_vehicledataset.WriteXml(sw, XmlWriteMode.WriteSchema)
Me.ViewState.Add("vehicledata", sw.ToString)
[/b]
End If
End Sub
Private Sub btnNext_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNext.Click
[b]
'scrape data off page, store in dataset
getupdatedData()
'move to next page
Server.Transfer("VehicleWiz3.aspx")
[/b]
End Sub
Private Sub btnPrev_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPrev.Click
[b] 'scrape data off page, store in dataset
getupdatedData()
'move to previous page
Server.Transfer("VehicleWiz1.aspx")
[/b]End Sub
'this method gets the current data on the page, and puts it in the dataset
Private Sub getupdatedData()
Dim _vehicledataset As New DataSet
_vehicledataset.ReadXml(New System.IO.StringReader(Vehicle), XmlReadMode.ReadSchema)
With _vehicledataset.Tables(0).Rows(0)
.Item(13) = tbVehicleModel.Text
.Item(9) = tbVehicleYear.Text
.Item(7) = tbVIN.Text
.Item(12) = ddlVehicleColor.SelectedValue
.Item(11) = ddlVehicleMake.SelectedValue
.Item(10) = ddlVehicleStyle.SelectedValue
End With
Dim sw As New System.IO.StringWriter
_vehicledataset.WriteXml(sw, XmlWriteMode.WriteSchema)
Me.ViewState("vehicledata") = sw.ToString
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'this responds to a cancel button, which closes the window
'in my case it was a popup wizard, so this made sense
Response.Redirect("../CLOSEME.ASPX")
End Sub
End Class