定义了一个类,在Page_Load事件赋值后,但当在LinkButton1_Click事件中取数是为空了,不知为什么?难道在类中不能这样定义全局变量吗?(全部代码如下,请仁兄指点,先谢了!)
Imports System
Imports System.Web
Imports System.Web.UI
Public Class DeyiClass
    Private Flags As String
        Public Property _Flag() As String
        Get
            Return Flags
        End Get
        Set(ByVal Value As String)
            Flags = Value
        End Set
    End Property
End Class
在WebFrom Page_Load事件中加入代码:
        Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
       If Not Page.IsPostBack Then
           Dim NewClass As New DeyiClass
           NewClass._Flag = "Z"
          end if
   end sub
    Private Sub LinkButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LinkButton1.Click
          dim StrTemp as string
          Dim TempClass As New DeyiClass
          strTemp=TempClass._Flag
end sub 

解决方案 »

  1.   

    定义NewClass时应该定义为全局变量!
      

  2.   

    你在两个事件中new了两次,也就是不在同一内存空间,所以会出现你取值为空的结果.
      

  3.   

    这样不行,你把它定义到Page_Load()里面,而且在if(!Page.IsPostBack)中,所以在回显的时候它是不会被复职的,解决办法你把他定义到页面所有事件的外面就和那些服务器控件一样定义。
      

  4.   

    Dim NewClass As New DeyiClass
               
    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
           If Not Page.IsPostBack Then
               NewClass._Flag = "Z"
              end if
       end sub
        Private Sub LinkButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LinkButton1.Click
              dim StrTemp as string
               strTemp=NewClass._Flag
    end sub 
      

  5.   

    注意:不要写在If Not Page.IsPostBack Then中,如下:Dim NewClass As New DeyiClass
               
    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
           NewClass._Flag = "Z"
       end sub
        Private Sub LinkButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LinkButton1.Click
              dim StrTemp as string
               strTemp=NewClass._Flag
    end sub