Avatar billede maxikoll Nybegynder
26. februar 2004 - 15:49 Der er 7 kommentarer

UserControl og sende værdier videre?

Er det muligt at sende en værdi videre fra en UserControl og sætte ind i den næste UserControl?

Eksempel:

1 / ASPX:
<uc:test Page_ID="1" id="ctrl_test" runat="server"></uc:test>

2 / VB:
Public Page_ID As Integer

2 / ASPX:
<uc:test Main_ID="<%# Page_ID %>" id="ctrl_test" runat="server"></uc:test>

Ovenstående virker ikke! Men er der nogen måde at få Page_ID fra den første control sat in i den næste? Eller er der en måde at den sidste control kan få den førstes værdi? Man kan smide det i en session på mellemvejen, men det er ikke den fedeste løsning. :(
Avatar billede burningice Nybegynder
26. februar 2004 - 16:22 #1
hvorfor bruger du DataBinding?

har du prøvet med en ganske simpel Response.Write?

<uc:test Main_ID="<%= this.Page_ID %>" id="ctrl_test" runat="server"></uc:test>
Avatar billede maxikoll Nybegynder
26. februar 2004 - 17:24 #2
Ja, man får slag :(

Cannot create an object of type 'System.Int32' from its string representation '<%=Page_ID%>' for the 'Main_ID' property.

Laver jeg så "Public Main_ID As String" i stedet for "As Integer" i sidste ende så får den en tom værdi.
Avatar billede thrytter Nybegynder
26. februar 2004 - 19:49 #3
Vil mene, at property er det smarteste til overførsel af data

Følgende (eller lignende) tilføjes codebehind filen.

Private iId as integer

Public Property Main_Id() As Integer
  Get
    Main_Id = Me.iId
  End Get
  Set(ByVal Value As Integer)
    Me.iId = Value
  End Set
End Property

Og evt. en funktion der kaldes når kontrollen skal (gen)dannes
Avatar billede maxikoll Nybegynder
02. marts 2004 - 11:07 #4
Jeg er stadigt lidt lost med hvordan man skal parse den værdi til controllen? Måske er jeg bare ikke så hurtig :)

1 / ASPX:
<uc:test Page_ID="1" id="ctrl_test" runat="server"></uc:test>

2 / VB:
'Nupper Page_ID
Public Page_ID As Integer

2 / ASPX:
'Page_ID skal sættes ind ved værdien ved Main_ID
<uc:test Main_ID="????" id="ctrl_test" runat="server"></uc:test>

Vil du styre det i codebehind?
Avatar billede burningice Nybegynder
02. marts 2004 - 16:11 #5
maxikoll>> ah.. kan troede din id var en string... har du prøvet

uc:test Main_ID="<%= int.Parse(this.Page_ID).ToString() %>" id="ctrl_test" runat="server"></uc:test>

??
Avatar billede maxikoll Nybegynder
02. marts 2004 - 16:43 #6
Cannot create an object of type 'System.Int32' from its string representation '<%= int.Parse(this.Page_ID).ToString() %>' for the 'Main_ID' property.

Samme problem ser det ud til...

Men kan man styre en UC serverside/codebehind, så kan man vel der sætte at der skal en ekstra parameter på som er Main_ID = Page_ID eller noget i den retning?
Avatar billede burningice Nybegynder
02. marts 2004 - 16:45 #7
ja, man kan godt programmere til den... du skal bare ærklære den i den klasse du arver fra, så vil du have adgang til dens properties.
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