Avatar billede mochr Nybegynder
23. august 2009 - 17:48 Der er 5 kommentarer

Hent data fra dynamisk added textbox

I min cs kode tilføjer et sæt ekstra textboxe udfra hvor mange der er valgt i en dropdown.

Altså brugeren vægler 4 i dropdownen, også køre jeg denne kode:

        for (int i = 0; i < Convert.ToInt32(ddlEventAmount.SelectedItem.Value); i++)
        {
            HtmlGenericControl divName = new HtmlGenericControl("div");
            HtmlGenericControl divPhone = new HtmlGenericControl("div");
            TextBox txtName = new TextBox();
            TextBox txtPhone = new TextBox();

            divName.Attributes.Add("class", "txt");
            divName.InnerHtml = "Navn</p>";
            divPhone.Attributes.Add("class", "txt");
            divPhone.InnerHtml = "<p>Telefon nr.</p>";

            divName.Controls.Add(txtName);
            divPhone.Controls.Add(txtPhone);
            pnlEventUsers.Controls.Add(divName);
            pnlEventUsers.Controls.Add(divPhone);
        }

Men hvordan får jeg så fat de i textboxe igen når jeg skal hente data ud fra dem?

Jeg har en knap hvor jeg gerne skulle køre noget ala:

            for (int i = 0; i < Convert.ToInt32(ddlEventAmount.SelectedItem.Value); i++)
            {
(TextBox)pnlEventUsers.FindControl("txtName");
            }
        }

Det hele køre i et updatepanel.

Mvh
Avatar billede ksoren Nybegynder
23. august 2009 - 18:16 #1
Du kunne oprette et array, som du gemmer referencerne til dine textboxe i...

[code]TextBox[,] dynBoxe;

dynBoxe = new TextBox[antal, 2];

for(...){
    TextBox txtName = new TextBox();
    TextBox txtPhone = new TextBox();

    dynBoxe[i, 0] = txtName;
    dynBoxe[i, 1] = txtPhone;
}
[/code]
Avatar billede mochr Nybegynder
23. august 2009 - 18:46 #2
Når jeg prøver at hente dem ud får jeg Object reference not set to an instance of an object.

Henter den sådan her:

TextBox txtName = dynBoxe[i, 0];
Avatar billede ksoren Nybegynder
23. august 2009 - 22:37 #3
Så kommer du på en eller anden måde, et eller andet sted, til at tilgå arrayet før det er oprettet.
Avatar billede sirius Nybegynder
24. august 2009 - 09:03 #4
hvis du opretter controller dynamisk skal du oprette dem igen hver gang du laver postback
Avatar billede mochr Nybegynder
26. august 2009 - 21:45 #5
Sorry det sene svar men jeg kan stadig ikke få det til at spille.

Når siden laver et postback med onchange på en ddl opretter jeg listen igen. Men når jeg så vil tilgå listen ved tryk på en knap laver den postback igen. Men så skal den jo beholde listen.

Her er lidt af koden:

    protected void btnEventToBasket_click(object sender, EventArgs e)
    {
                TextBox txtName = dynBoxe[i, 0];
        }
    }

    private TextBox[,] dynBoxe;

    protected void ddlEventAmount_change(object sender, EventArgs e)
    {
        dynBoxe = new TextBox[Convert.ToInt32(ddlEventAmount.SelectedItem.Value), 2];

            TextBox txtName = new TextBox();
            TextBox txtPhone = new TextBox();

            dynBoxe[i, 0] = txtName;
            dynBoxe[i, 1] = txtPhone;


        }
    }
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
Kurser inden for grundlæggende programmering

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