System.Web.UI.Page類別 的 跨網頁>> 物件傳遞
'=======================================
法1:
step1.在前頁裡宣告公開控制項的property 設定要POST過去的後頁
Imports System.Data.SqlClient
Imports System.Web.Configuration
Partial Class Postpage
Inherits System.Web.UI.Page
Public ReadOnly Property preControl_Textbox1() As TextBox '公開這個 TextBox1 控制項給 後頁去存取
Get
Return TextBox1
End Get
End Property
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
' TextBox1.Text = "KQ"
End Sub
End Class
'
'---------------------------------------------------------------------------------
step2.在後頁html宣告virtualPath 來源是前頁 就可以取得前頁的控制項
Partial Class About
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not Page.PreviousPage Is Nothing Then
Label1.Text = PreviousPage.preControl_Textbox1.Text '從上頁取回控制項 preControl_Textbox
End If
End Sub
End Class
'=====================================================
法2.
JKFIX:
1.要在html內 加入 PostBackUrl的導向頁語法 如下
Text="Dropdown_select" Width="116px" />
2.
使用PreviousPage.FindControl 要再轉型一次 型別必須跟原物件相同 如下
bb = CType(PreviousPage.FindControl("TextBox_serial"), TextBox)
3.
傳遞到新頁面的物件可以被找到以後 似乎只能讀取屬性值
'================================================
Imports System.Data
Imports System.Data.SqlClient
Imports System.Web
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
'--------Textbox 傳遞-------------------
Dim bb As New TextBox
bb = CType(PreviousPage.FindControl("TextBox_serial"), TextBox)
'TextBox1 =bb '這樣沒有作用
TextBox1.Text = bb.Text '這樣有作用
'所以似乎上頁元件雖然有傳過來(但無法直接對應給新頁面元件)
'--------/Textbox 傳遞/-------------------
'------DropDownList 傳遞---------------------------------
Dim d1 As New DropDownList
d1 = CType(PreviousPage.FindControl("d1"), DropDownList) '可以從上頁找到原本的d1取得全部屬性值
'可是卻無法直接指定給新頁面的dropdown物件
'只好手動技巧的取值傳遞給新的下拉選單元件
Dim aa(d1.Items.Count) As String
For i = 0 To d1.Items.Count - 1
aa(i) = d1.Items.Item(i).Text
DropDownList1.Items.Add(aa(i))
Next
' For Each mm In dd.Items.Item ' 無法使用這種寫法 item有唯讀限制
' Next
'------/DropDownList 傳遞/------------------------------
End Sub