Avatar billede pfp Nybegynder
15. november 2005 - 11:08 Der er 8 kommentarer og
1 løsning

Loope igennem sidens html elementer

Hej,

På page_load modtager min side et jagged array (string[][]) indeholdende et navn og en værdi.

Navnet er navnet på et html form element, og værdien er værdien som gerne skal vises i html form elementet.

Hvordan kan jeg loop'e igennem mit array og indsætte de rigtige værdier i de rigtige felter på min side?

Et lidt kringlet spørgsmål, men jeg håber det giver mening..

/pfp
Avatar billede pfp Nybegynder
15. november 2005 - 11:09 #1
indeholdende et navn og en værdi = indeholdende en række navne og værdier.
Avatar billede jokkejensen Novice
15. november 2005 - 11:31 #2
de controls skal have tilføjet runat="server" og et passende ID..

Find dem så med FindControl()..
Avatar billede pfp Nybegynder
15. november 2005 - 11:56 #3
Det lader til at være rette vej.

Men når jeg så har fat i controllen, med:
FindControl("telefon") hvordan assigner jeg så en værdi til den?
Avatar billede pfp Nybegynder
15. november 2005 - 12:05 #4
TextBox foo = (TextBox)FindControl("telefon");
foo.Text = mitDataArray[666];

Det virker, men mit problem er at jeg ikke på forhånd ved at det er en TextBox der skal udfyldes..
Avatar billede pfp Nybegynder
15. november 2005 - 12:05 #5
Mit array kan også indeholde navne og værdier på alle andre former for HTML form elementer..
Avatar billede jokkejensen Novice
15. november 2005 - 12:52 #6
du kan bare sige
Control c = FindControl("telefon");

if(c is TextBox)
{
(TextBox)c.Text = //;
}

if(c is CheckBoxList)
{

}

Eller lav en case, du forstår sikker nok hvor jeg vil hen..
Avatar billede jokkejensen Novice
15. november 2005 - 13:37 #7
Bruger den her til at finde controls der starter med noget specielt:

private void FindMailSubFields(Control startControl, ArrayList list, DataTable dbSpecialFields)
        {                   
            foreach ( Control c in startControl.Controls )
            {
               
                if ( c.ID != null && c.ID.IndexOf("SpecialField") != -1)
                {
                    foreach(DataRow dr in dbSpecialFields.Rows)
                        if(c.ID == "SpecialField_" + dr[1].ToString())
                        {
                            if(c is TextBox)
                            {
                                TextBox tb = (TextBox)c;
                                if(tb.Text != "")
                                {
                                    list.Add(new MailSubField(tb.ID, tb.Text, tb.ID.Remove(0,13)));   
                                   
                                }   
                            }

                            if(c is ValidationBoxTemplate)
                            {
                                ValidationBoxTemplate tb = (ValidationBoxTemplate)c;
                                if(tb.Text != "")
                                {
                                    list.Add(new MailSubField(tb.ID, tb.Text, tb.ID.Remove(0,13)));   
                                }   
                            }
                                   
                            else if(c is CheckBoxList)
                            {
                                CheckBoxList cb = (CheckBoxList)c;
                               
                                string s = "";
                                foreach (ListItem item in cb.Items)
                                {
                                    if (item.Selected)
                                    {
                                        s += item.Value +". ";
                                    }
                                }
                                list.Add(new MailSubField(cb.ID, s, cb.ID.Remove(0,13)));   
                               

                            }
                        }

                }               
                       
                // Continue search
                if ( c.HasControls() )
                    FindMailSubFields(c,list, dbSpecialFields);
            }
        }
Avatar billede pfp Nybegynder
15. november 2005 - 13:43 #8
Super det er løsningen :)

Jeg var nået frem til:
Control c = FindControl(variabel_her);
string type = c.GetType().Name.ToLower()

if(type == "textbox")
osv osv.

Men dit "is" tjek er langt mere elegant.

Smid et svar.
Avatar billede jokkejensen Novice
15. november 2005 - 14:37 #9
:)
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