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

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 prague12 的頭像
    prague12

    prague12

    prague12 發表在 痞客邦 留言(0) 人氣()