Oprettet lør. d. 13. februar 2010 kl. 11:55:58

fun22
fun22 (12.989 point. Point ude: 195)

Kan ikke finde dynamisk oprettede controles i placeholder

Hej E

Jeg har en side hvor jeg opretter en label og en textbox ud fra hver linie i en tekst fil.

Det virker også fint som det skal..

Men når jeg så skal hente værdierne fra textboxene så er der altid 0 controles i min placeholder.controles

Jeg bruger følgende kode til at tilføje controlerne:

Dim addedparam As String = ""

        PlaceHolder.Controls.Add(New LiteralControl("<table>"))

        Do While Not fp.EndOfStream
            Dim line As String = Server.HtmlEncode(fp.ReadLine)
            If line.Contains("{#}") Then
                Dim parmName As String = GetStringInBetween("{#}", "{/#}", line)

                If Not addedparam.Contains(parmName) Then
                    PlaceHolder.Controls.Add(New LiteralControl("<tr>"))

                    PlaceHolder.Controls.Add(New LiteralControl("<td>"))

                    Dim nLabel As New Label
                    nLabel.Text = parmName & ": "
                    nLabel.ID = "l" & parmName

                    PlaceHolder.Controls.Add(nLabel)

                    PlaceHolder.Controls.Add(New LiteralControl("</td>"))
                    PlaceHolder.Controls.Add(New LiteralControl("<td>"))

                    Dim nTextBox As New TextBox
                    nTextBox.ID = "tb" & parmName

                    PlaceHolder.Controls.Add(nTextBox)

                    PlaceHolder.Controls.Add(New LiteralControl("</td>"))
                    PlaceHolder.Controls.Add(New LiteralControl("</tr>"))

                    addedparam = addedparam & "," & parmName

                End If

            End If
        Loop

        PlaceHolder.Controls.Add(New LiteralControl("</table>"))

Og det virker som sagt fint.. Men når jeg så bruger følgende for at finde det som er blevet indtastet i textboxene:

For Each myControle As Control In PlaceHolder.Controls
            i += 1
            ....
        Next

så er der 0 controles i min placeholder. Hvordan kan det være??

Siden laver ikke en postback i mellemtiden.. Først når jeg klikker på en knap laver den en asyncpostback i et updatepanel..

Men uden at få værdierne med..

Nogen der kan gennemskue problemet?

Skrevet lør. d. 13. februar 2010 kl. 12:45:09| #1

keysersoze
keysersoze (306.439 point)
www.soze.dk
du fortæller ikke hvilke events de forskellige ting kører på og hvad der sker i hvert event - men mit gæt er at du ikke sørger for at kontrollerne er oprettet igen når du laver dit asyncpostback.

Skrevet lør. d. 13. februar 2010 kl. 15:36:43| #2

fun22
fun22 (12.989 point)
Det der sker, er at jeg i en dropdown boks, vælger f.eks "Test", så laver den en postback i og der tilføjes så textbokse alt efter hvad der står i dne tekst fil der bliver indlæst.

Og det virker fint..

Så skriver man så noget i textboksene, og klikker på en knap.

Ved at trykke på den knap laver den så et asyncpostback hvor den så skal finde alle de textbokse der er blevet oprettet i placeholderen..

Det var jo så det jeg havde regnet med at gøre sådan her:

For Each myControle As Control In PlaceHolder.Controls
            i += 1
            ....
        Next

Men det virker jo så ikke.. Men hvad kan det skyldes?

Skrevet lør. d. 13. februar 2010 kl. 15:46:01| #3

keysersoze
keysersoze (306.439 point)
www.soze.dk
som allerede nævnt opretter du sikkert ikke dine kontroller igen ved postback - så opret dine textbokse igen inden du laver din for each.

Skrevet lør. d. 13. februar 2010 kl. 23:21:39| #4

fun22
fun22 (12.989 point)
Okay, nu har jeg så prøvet at oprette dem igen ved den nye postback, men så har den jo ikke de værdier som jeg har skrevet ind...

Hvis jeg opretter textboksene igen, ved postback, så kan jeg godt fange dem, men deres text property er tom, da de jo lige er blevet oprettet igen..

Hvordan kan jeg komme uden om det??

Skrevet søn. d. 14. februar 2010 kl. 01:54:09| #5

keysersoze
keysersoze (306.439 point)
www.soze.dk
sørg for at din viewstate ikke er disabled, sørg for at oprette dine kontroller i page_load eller page_init og sørg for at dine kontroller får præcis samme id hele vejen igennem.

Skrevet søn. d. 14. februar 2010 kl. 10:16:58| #6

fun22
fun22 (12.989 point)
Kanont... Jeg skulle bare flytte min oprettelse at kontrollerne fra min button click til page_load...

Smider du et svar?

Skrevet søn. d. 14. februar 2010 kl. 10:39:02| #7


Skriv et indlæg




Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] [img]link til billede[/img]
Web- og emailadresser omdannes automatisk til links

Log ind

   

   

Seneste spørgsmål

Login controller med eksisterende database

Oprettet den 26. januar 2012 kl. 10.37
faran giver 60 point for svar | Giv et svar »

Session og klient

Oprettet den 24. januar 2012 kl. 09.49
badal giver 30 point for svar | Giv et svar »

Få vist billeder via sti i XML fil

Oprettet den 15. januar 2012 kl. 16.09
Counx giver 100 point for svar | Giv et svar »

Seneste guides

Installer win 7
Den gode bruger


   




Tips & Tricks fra PC World

Teaser billede

Her er fem sjove danske websider du skal kende

Trænger dine lattermuskler til en omgang fitness på dansk? Vi viser vej til fem websider fyldt med humor og vanvittig satire.


Anmeldelser fra PC World

Teaser billede

Test: Denne super-tablet er iPads hårdeste konkurrent

Eee Pad Transformer Prime er frygtindgydende med sin quadcore processor og evne til at trylle sig om til bærbar. Apple bør kigge i bagspejlet, for Asus' tablet-pc kommer buldrende - og gør det...


Seneste blogindlæg

Teaser billede

Tvangslukke spørgsmål: Hvad er den bedste løsning?

Hej Vi har mange åbne spørgsmål på Eksperten. Vi ville gerne tvangslukke dem - så et spørgsmål efter f.eks. 6 måneder lukkes. Men der er et par uklarheder som ville være gode at få lidt input til:...


Nyheder fra PC World

Teaser billede

Nu kan du snart hente Windows 8

Den nye offentlige betaversion af Windows 8 er klar i denne måned.


Nyheder fra Computerworld

Teaser billede

Måske snart slut med Androids helt store problem

Android-platformen har længe været plaget af et særligt problem. Men måske er problemet nu ved at være elimineret.


Kurser
Samarbejdspartnere

Udgiver · © 2012 IDG Danmark A/S · Hørkær 18 · 2730 Herlev · Tlf.: 77 300 300 · Fax: 77 300 301 · Brug af personoplysninger