簡體   English   中英

在子頁面中訪問母版頁會話

[英]accessing master page session in child pages

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) 處理 Me.Load

    lblSTuName.Text = "Welcome! " + Session("StuID")
    If con.State = ConnectionState.Closed Then
        con.Open()
    End If
    cmd = New OleDbCommand
    cmd.Connection = con
    cmd.CommandText = "select [Image] from tblStudent where Uname='" + Session("StuID") + "'"
    Dim dr As OleDbDataReader
    dr = cmd.ExecuteReader()
    If dr.Read() Then
        stuImage.ImageUrl = dr("Image")
    Else
        stuImage.ImageUrl = Nothing
    End If
    con.Close()
End Sub

我在 student.master 頁面中有此代碼

然后我希望 session("StuID") 也可以在 chlid 頁面中使用....我在子頁面 student.aspx 中編寫了以下代碼-

如果不是 IsPostBack 那么

        Dim stname As Label = TryCast(Master.FindControl("lblSTuName"), Label)
        stuN = stname.Text
        If con.State = ConnectionState.Closed Then
            con.Open()
        End If
        cmd = New OleDbCommand
        cmd.Connection = con
        cmd.CommandText = "select [RollNo],[CourceName] from tblStudent where StuName='" + stuN + "'"
        dr = cmd.ExecuteReader()
        If dr.Read() Then
            MsgBox("read complete")

        Else
            MsgBox("not success!")
        End If
    End If

但我無法使用此代碼在子頁面中使用會話。我可以獲得任何幫助嗎?

每個用戶只有一個會話對象。 您可以從任何頁面訪問這些數據。 嘗試直接使用會話中的學生姓名。 您不需要任何母版頁

       .....
       Dim stuN =  Session("StuID");
        If con.State = ConnectionState.Closed Then
            con.Open()
        End If
        cmd = New OleDbCommand
        cmd.Connection = con
        cmd.CommandText = "select [RollNo],[CourceName] from tblStudent where StuName='" + stuN + "'"
       // or better to try
      cmd.CommandText = "select [RollNo],[CourceName] from tblStudent where Uname='" + stuN + "'"
       ......

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM