Avatar billede c-sharp Nybegynder
08. december 2006 - 09:21 Der er 4 kommentarer og
1 løsning

Hjælp til at tilgå dynamiske tilføjede kontroller efter postback

Jeg poster nogle fra min codebehind på følgende måde:


        Table tl = new Table();

        foreach (SideKomp sk in liste)
        {
            Label la = new Label();
            la.Text = sk.navn;
            TableRow tr = new TableRow();
            TableCell tc = new TableCell();
            TableCell tc1 = new TableCell();
            tl.Rows.Add(tr);
            tr.Cells.Add(tc);
            tr.Cells.Add(tc1);
            tc.Controls.Add(la);
            tc1.Controls.Add((TextBox)sk.kontrol);
//            this.Page.Form.Controls.Add((TextBox)sk.kontrol);
        }
        this.Page.Form.Controls.Add(tl);

Nu vil jeg gerne hente de indtastede værdier i de checkboxe efter postback, men hvordan kan jeg tilgå den nemmest?
Avatar billede tdafoobar Nybegynder
08. december 2006 - 09:46 #1
"de indtastede værdier i de checkboxe"

Du mener 'textboxe' ? Gem et refference til din controller i dit class-scope, så du kan tilgå dem efter postback.

Hvilket du ser ud til at have gjort med din sk.kontrol, og så er det jo bare at hente værdien af den efter postback.
Avatar billede mikkel_sommer Nybegynder
08. december 2006 - 09:55 #2
Du kan tildele dine controls nogle id'er og så bruge findControl metoden.

Eller hvis du er sikker på de altid er på samme sted

        Dim tab As Table
        Dim tr As TableRow = tab.Rows(0)
        Dim tcs As TableCellCollection = tr.Cells
        Dim tc As TableCell = tcs.Item(0)
        Label la = tc.Controls(0)

Men det første er nok klart det nemmeste.
Avatar billede c-sharp Nybegynder
08. december 2006 - 10:50 #3
tbafoobar: kan du give et eksempel?
Avatar billede c-sharp Nybegynder
14. februar 2007 - 10:54 #4
Jeg lukker igen, tak til alle for jeres deltagelse!
Avatar billede snepnet Nybegynder
15. februar 2007 - 02:00 #5
Tror det snildeste er hvis du bare gemmer referencerne i en liste... Ellers skal du møve dig ned igennem tabellen:

// klassevariabel:
List<TextBox> mineLækreTextBoxe = new List<TextBox>();

Hver gang du tilføjer en textbox til din tabel - tilføjer du den også bare til din liste:
if(sk.konrol is TextBox)
{
  mineLækreTextBoxe.Add(sk.kontrol as TextBox);
}

Så kan du altid ræse den igennem via listen:
foreach(TextBox tb in mineLækreTextBoxe)
{
  // hvad der nu skal ske
}

Men du har jo (som tdafoobar skriver) en reference til tekstboksene i forvejen (sådan ser det i hvert fald ud :o)

Mvh
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