10. juli 2003 - 15:42Der er
7 kommentarer og 2 løsninger
Object variable or With block variable not set.
Jeg er netop gået i gang med ASP.NET, og sidder og laver nogle små scripts. Men nedenstående kodestump bliver ved med at give ovenstående fejl. Hvorfor?
<script language="VB" runat="server"> Sub test(Sender As Object, E As EventArgs) Dim Brugernavn As Object Brugernavn = brugernavn.Text If Trim(Brugernavn) = "" Then status.Visible = True status.Text = "Angiv et brugernavn!" Else 'Tjaa... End If End Sub </script>
Jeps, det er fordi både din lokale variabel og din textbox hedder det samme. Så tror VB at du refererer til den lokale variabel. Så hvis kalder din string noget andet end brugernavn vil det virke.
Hvis din TextBox hedder Brugernavn, så er det en dårlig ide også at have en lokal variabel der hedder brugernavn, prøv i stedet:
Sub test(Sender As Object, E As EventArgs) Dim inp As String inp = Trim(brugernavn.Text) If inp = "" Then status.Visible = True status.Text = "Angiv et brugernavn!" Else 'Tjaa... End If End Sub
Jeg har forresten lige et tillægsspørgsmål, hvis du gider. Hvordan ser en funktion ud i .NET, og kan den kaldes fra alle steder i filen? Ligesom i ASP måske:
Function test(Str1, Str2) test = str1 & str2 End Function
Ovenstående funktion vil virke overalt i 'filen'. I .Net er der dog egentlig tale om klassen. Der findes forskellige niveauer for funktioner: Private angiver eks. at funktionen kun kan kaldes fra samme klasse og public betyder at funktionen kaldes fra alle klasser.
Private Function test(Str1, Str2) test = str1 & str2 End Function
Fint, er der i ovenstående eksempel overhovedet nogen grund til at overføre værdien af inputfeltet til en variabel ligesom det oftest gøres i ASP? Er det godt nok blot at skrive: (?)
Sub test(Sender As Object, E As EventArgs) If Trim(brugernavn.Text) = "" Then status.Visible = True status.Text = "Angiv et brugernavn!" Else
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.