Avatar billede uas Nybegynder
29. april 2006 - 16:43 Der er 13 kommentarer og
1 løsning

Page.FindControl

Jeg har en textbox i en usercontrol. Hvordan fanger jeg dens værdi på en af mine sider i masterpage?

Jeg troede man kunne bruge Page.FindControl, men kan ikke rigtig få det til at virke. (Se kode nedenfor)

Masterpage:
...
<td>QMenu:LeftMenu id="LeftMenuID" runat="Server"/></td>
<td><asp:contentplaceholder id="Indhold" runat="server" /></td>
...

default.aspx:
<%@ Page Language="VB" MasterPageFile="MasterPage.master" %>

<script runat="server">
  Sub Page_Load()
    Dim usrcntrl As UserControl
    Dim txtbx As TextBox
    usrcntrl = Page.FindControl("LeftMenuID")
    If Not IsNothing(usrcntrl) Then
      txtbx = usrcntrl.FindControl("Textbox1")
      If Not IsNothing(txtbx) Then
        LabelUAS.Text = txtbx.Text
      End If
    Else
      LabelUAS.Text = "user control is nothing"
    End If
  End Sub
</script>

<asp:Content ID="Indhold" ContentPlaceHolderID="Indhold" runat="server">
<asp:Label ID="LabelUAS" runat="server" Text="Label"></asp:Label>
</asp:Content>


UserControl
...
<asp:TextBox ID="TextBox1" Text="hej" runat="server"> </asp:TextBox>
...
Avatar billede dr_chaos Nybegynder
29. april 2006 - 17:12 #1
lav en property som returnerer text værdien fra text boksen.
Avatar billede uas Nybegynder
29. april 2006 - 17:18 #2
Det syntes jeg også jeg har prøvet. Men måske gør jeg det forkert
Følgende skal indsættes i usercontroller, ikke?
Men hvad skriver jeg så på default.aspx siden for at kalden property'en?

  Public strValue As String
 
  Public ReadOnly Property selValue() As String
    Get
      Return strValue
    End Get
  End Property
Avatar billede dr_chaos Nybegynder
29. april 2006 - 17:22 #3
Public Property txtText() As String
Get
  Return TextBox1.Text
End Get
Set
  TextBox1.Text = value
End Set
End Property
    End Set
  End Property
Avatar billede uas Nybegynder
29. april 2006 - 17:23 #4
Men kan det andet igrundet ikke lade sig gøre??? altså med Page.FindControl
Avatar billede dr_chaos Nybegynder
29. april 2006 - 17:23 #5
Det forudsætter selvfølgelig at TextBox1 ligger på usercontrollen.
Avatar billede dr_chaos Nybegynder
29. april 2006 - 17:26 #6
Jo men det er ikke en god løsning.
Men så skal du bruge findcontrol på flere led.
noget med
Page.Master.FindControl("Contentplaceholder").FindControl("usercontrol").FindCOntrol("Textbox1")
Avatar billede uas Nybegynder
29. april 2006 - 17:28 #7
okay, hvis jeg nu laver det med en property, hvad skriver jeg så over på default.aspx siden for f.eks at få værdien ud i en label?
Avatar billede dr_chaos Nybegynder
29. april 2006 - 17:31 #8
har du tilføjet usercontrollen til din side ?
Avatar billede uas Nybegynder
29. april 2006 - 17:32 #9
Den er tilføjet i masterpage filen
Avatar billede dr_chaos Nybegynder
29. april 2006 - 17:34 #10
og nu skal du bruge den på en underside ?
Avatar billede uas Nybegynder
29. april 2006 - 17:36 #11
ja, værdien fra den textbox, som ligger i usercontrollen skal jeg bruge på min underside
Avatar billede dr_chaos Nybegynder
29. april 2006 - 17:43 #12
tja enten noget find control eller  en property som returnerer din usercontrol.
Public Property txtText() As UserControl
Get
  Return DinUserControl
End Get
Set
  DinUserControl = value
End Set
End Property
    End Set
  End Property
Avatar billede uas Nybegynder
29. april 2006 - 19:56 #13
tror jeg er med. Smid lige et svar :-)
Avatar billede dr_chaos Nybegynder
29. april 2006 - 20:00 #14
svar :)
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester