09. januar 2007 - 10:55Der er
7 kommentarer og 1 løsning
Usercontrol null reference.
Hej
Jeg har lavet en webform hvorpå jeg har en form i denne form har tilføjet en usercontrol med nogle textbokse, dropdowns osv. Jeg vil så gerne køre en funktion på min usercontrol fra min webform. Men når jeg vil referere til usercontrolen fra webformen får jeg en null reference.
Webform: Min aspx fil: <%@ Register TagPrefix="sholm" TagName="Prisaend" Src="/controls/prisaendringer.ascx" %>
Min aspx.vb fil: Protected WithEvents ctrlPrisaendring As prisaendringer
Public Sub OpretKladde(ByVal sender As Object, ByVal e As EventArgs) Dim objKladde As New Kladde objKladde = CType(ctrlPrisaendring.getValues(objKladde), Kladde) End Sub
Null reference fejlen kommer ved ctrlPrisaendring.getValu...
Pt. sker der ingen ting i getValues funktionen, den returnerer blot objektet.
Hos Computerworld it-jobbank er vi stolte af at fortsætte det gode partnerskab med folkene bag IT-DAY – efter vores mening Danmarks bedste karrieremesse for unge og erfarne it-kandidater.
Jeg kan godt fange objektet med: Me.FindControl("kontrol") funktionen, men er det den rigtige måde at gøre det på? Jeg synes det virker forkert at jeg skal søge på min side efter en kontrol før jeg kan bruge den.
FindControl metoden er meget almindeligt, man kan også, hvis man ved hvor præcist i ens controltree kontrollen ligger, referere direkte til den. Men det er klart det nemmeste at anvende Findcontrol()
der er en anden måde, om den er smartere kan diskuteres for du er nødt til at vide hvor præcis i dit controltree den kontrol du leder efter ligger.
Lad os eksempelvis sige at du har en repeater med nogle dynamisk oprettet kontroller i så kan du gøre fgl.:
Dim textbox As System.Web.UI.WebControls.TextBox = Me.Repeater1.Controls.Item(1)
Men som sagt så er du nødt til at vide at præcis den textbox du vil have fat i ligger på plads 1.
Hvis du er i tvivl om hvor dine controls præcist ligger kan du, hvis du vil bruge dette, se det ved at sætte trace = true så kommer hele kontrol traet frem nederst på din side når du kører den.
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.