Ik probeer een class te maken waarmee ik messages kan toevoegen op me webpage voor bijvoorbeeld errors te laten zien, de code van de class staat hier onder
Code behind:
Dan roep ik de user control zo aan:
Dim Messages As New Messages
Messages.Add("test", Messages.Mode.MsgError)
Maar dat werkt hiet, het lijkt wel alsof de dtMessages variable vergaat zogauw hij in de sub Add gebruikt wordt, als ik een row toevoeg in de Page_Load werkt het wel...
help
Code behind:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
| Public Class Messages
Inherits System.Web.UI.UserControl
Protected WithEvents rptMessages As Repeater
Private dtMessages As New DataTable
Public Enum Mode
MsgError
MsgInfo
MsgSuccess
End Enum
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
dtMessages.Columns.Add("Text")
dtMessages.Columns.Add("Class")
End Sub
Public Sub Add(ByVal Text As String, ByVal Mode As Mode)
Dim MessageClass As String
Select Case Mode
Case Mode.MsgError
MessageClass = "error"
Case Mode.MsgInfo
MessageClass = "info"
Case Mode.MsgSuccess
MessageClass = "success"
End Select
Dim dr As DataRow = dtMessages.NewRow()
dr("Text") = Text
dr("Class") = MessageClass
dtMessages.Rows.Add(dr)
End Sub
Private Sub Page_PreRender(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.PreRender
dtMessages.DefaultView.Sort = "Class"
rptMessages.DataSource = dtMessages
rptMessages.DataBind()
End Sub
End Class |
Dan roep ik de user control zo aan:
Dim Messages As New Messages
Messages.Add("test", Messages.Mode.MsgError)
Maar dat werkt hiet, het lijkt wel alsof de dtMessages variable vergaat zogauw hij in de sub Add gebruikt wordt, als ik een row toevoeg in de Page_Load werkt het wel...
Op google kon ik niks concreets vinden hieroverDe kolom Text hoort niet bij de tabel .
Beschrijving: Er is een onverwerkte uitzondering opgetreden tijdens het uitvoeren van de huidige webaanvraag. Raadpleeg de stacktracering voor meer informatie over deze fout en de oorsprong ervan in de code.
Details van uitzondering: System.ArgumentException: De kolom Text hoort niet bij de tabel .
Fout in bron:
Regel 29:
Regel 30: Dim dr As DataRow = dtMessages.NewRow()
Regel 31: dr("Text") = Text
Regel 32: dr("Class") = MessageClass
Regel 33: dtMessages.Rows.Add(dr)
help