Avatar billede MrMagoo Nybegynder
28. november 2013 - 13:30 Der er 6 kommentarer og
2 løsninger

Find Control i en repeater

Hejsa

Jeg har en repeater i en usercontrol.

I repeateren er der en textbox man kan udfylde med et antal samt en label med et varenr.

Kan i hjælpe mig med at finde textbox og label i en for each sætning?

Kan oplyse at et given varenr ser således ud i koden:

ctl00_placeholderBody_ctl04_Repeater1_ctl21_Varenr

Dim LabelID As Label
For i = 0 To Repeater1.Items.Count - 1
Dim VarVarenr = Repeater1.Items(i).FindControl("Varenr")
Dim VarAntal = Repeater1.Items(i).FindControl("Antal")
LabelID = VarVarenr
lblText.Text = lblText.Text & "<br>" & LabelID.Text
Next

Ovenstående kode outputter intet i lblText
Avatar billede keysersoze Guru
28. november 2013 - 14:59 #1
i og med at den ikke fejler finder den jo noget - det der nok er mest interessant er hvornår du kører din kode?
Avatar billede MrMagoo Nybegynder
28. november 2013 - 15:24 #2
Jeg eksekverer koden ved et button_click..

Hvor ville du anbefale?
Avatar billede keysersoze Guru
28. november 2013 - 15:34 #3
Har du databundet din repeater inden din click-event, fx i page_load, og sørget for at give dine kontroller det samme ID pr request? Hvis ikke vil dine data forsvinde.
Avatar billede MrMagoo Nybegynder
28. november 2013 - 16:24 #4
Ja det giver mening.

Jeg skal på en eller anden måde skabe mine controls inden jeg databinder dem...Kan man add dem programatisk?

Hvordan kan man gøre dèt?

Jeg har pt bare databindet til repeater og så trukket en textbox control ned i itemTemplate og den går jo nok ikke...
Avatar billede keysersoze Guru
28. november 2013 - 17:41 #5
Det er ikke helt det jeg sige. Hvis du kun databinder ved pageload og ikke ved postback vil dine data ikke eksisterer - og hvis du ikke sikrer dig at dine kontroller har samme id på tværs af postback vil din data også forsvinde.

Du kan jo prøve at lave et postback uden at foretage sideskift eller noget og se om din repeater indeholder de data du forventer.
Avatar billede anri Novice
29. november 2013 - 08:56 #6
Prøv at hooke dig op på repeaterens ItemDataBound event, og sæt teksten deri.
Det plejer jeg at gøre.  Hvis jeg så skal have f.eks. en knap i hvert repeater-item til at udføre en specifik handling på den aktuelle post, så plejer jeg at gøre noget lignende

(dette er bare eksempel-pseudo-kode)

function repeater_onItemDataBound(s, e){
Label lbl1 = e.Item.FindControl("Varenr");
lbl.Text = "tekst";

Button btn1 = e.Item.FindControl("Knap");
btn1.CommandArgument = [En unik ID på posten];
}

Så kan du nemli hente id'en på posten på den enkelte buttons OnClick event.
Avatar billede MrMagoo Nybegynder
29. november 2013 - 10:29 #7
@ Keysersoze & anri

Tak for hjælpen, en kombination af jeres kommentarer førte mig til løsningen.

@ Keyserzose - vil du smide et svar så vil jeg fordele points.
Avatar billede keysersoze Guru
29. november 2013 - 15:24 #8
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



IT-JOB