У меня проблема с глобальной переменной в VB.Net.
В одной подпрограмме (запускаемой кнопкой) я создаю объекты и сохраняю их в глобальной переменной (массиве).После этого я создаю таблицу (DataGrid).
С помощью второй кнопки запускается другая подпрограмма и пытается использовать массив из глобальной переменной, но он, кажется, пуст.код:
<script runat="server">
Dim array_datensatz(12) As Datensatz
Sub submit1_click(ByVal Sender As Object, ByVal E As EventArgs)
Dim cellX As New TableCell()
For n = 0 To 12 '13 objects a created
Dim tmpklasse As New Datensatz(n)
array_datensatz(n) = tmpklasse
' MsgBox(tmpklasse.methode_merkmal1) ' method_merkmal1 returns a Integer
' MsgBox(array_datensatz(n).methode_merkmal1()) 'both work
Next n
ItemsGrid.DataSource = CreateDataSource() 'creates table
ItemsGrid.DataBind()
End Sub
Function CreateDataSource() As ICollection
Dim dt As New DataTable()
Dim dr As DataRow
dt.Columns.Add(New DataColumn("Merkmal1"))
dt.Columns.Add(New DataColumn("Merkmal2"))
dt.Columns.Add(New DataColumn("Merkmal3"))
Dim i As Integer
For i = 0 To (array_datensatz.GetLength(0) - 1) 'länge des array der ergebnise (0. dim) = #results
dr = dt.NewRow()
dr(0) = array_datensatz(i).methode_merkmal1()
dr(1) = array_datensatz(i).methode_merkmal2()
dr(2) = array_datensatz(i).methode_merkmal3()
dt.Rows.Add(dr)
Next i
Dim dv As New DataView(dt)
Return dv
End Function 'CreateDataSource
Public Sub sub_anonym(ByVal Sender As Object, ByVal E As EventArgs)
For i = 0 To (array_datensatz.GetLength(0) - 1)
MsgBox(array_datensatz(i).methode_merkmal1()) 'throws an exception saying that ~"the object reference doesn't target an object-instance"
Next i
End Sub
</script>
В чем проблема?Почему нет объектов в массиве?