Gå til innhold

Få tak i elementer av gitte navn


Anbefalte innlegg

Jeg har endel asp:TextBox i et skjema. Disse har samme navn som feltnavna i databasen, slik at det skal være enklere å samkjøre dette. Så kommer spørsmålet. Hvordan kan jeg "gette" denne kontrollen?

 

Finnes det noen måte å "getElementByID" eller noe, som det er i java? for da kan jeg bare kjøre en løkke gjennom elementnavnene i databasen og sette verdien i korrekt felt i løpet av 10 linjer, i stedet for 100, for å skrive det manuelt... :p

Lenke til kommentar
Videoannonse
Annonse
  • 2 uker senere...

Følgende kode (fjernet litt spørring)

 

SqlCommand command = new SqlCommand();
command.Connection = conn;

command.CommandText = "SELECT * FROM ......";
SqlDataReader reader = command.ExecuteReader();
reader.Read();
for (int i = 0; i < reader.FieldCount; i++)
       {
           Control c = Page.FindControl(reader.GetName(i));
           if (c != null && c is TextBox)
           {
               ((TextBox)c).Text = reader[reader.GetName(i)].ToString();
           }
           else
           {
               Response.Write("Could not find '" + reader.GetName(i) + "' " + (c == null ? "NULL" : "") + Environment.NewLine);
           }
       }

 

...havner alltid inn i "else" :( Hvorfor det? c er alltid null, selv om det eksisterer en TextBox med en id lik alle de den printer ut fra reader.GetName(i) :(

Lenke til kommentar

haha... løste det... denne ble grisete :p

 

for (int i = 0; i < reader.FieldCount; i++)
       {
           Control c = Page.Controls[0].Controls[3].Controls[1].FindControl(reader.GetName(i));
           if (c != null && c is TextBox)
           {
               ((TextBox)c).Text = reader[reader.GetName(i)].ToString();
           }
           else
           {
               Response.Write("Could not find '" + reader.GetName(i) + "' " + (c == null ? "NULL" : "") + Environment.NewLine);
           }
       }

 

merk hvordan jeg getter riktig kontroll... :p

Lenke til kommentar
haha... løste det... denne ble grisete :p

 

           Control c = Page.Controls[0].Controls[3].Controls[1].FindControl(reader.GetName(i));

 

hehe, ja... Denne kontollen har du vel kanskje navn på allerede? Slik at du kan skrive MinKontroll.FindControl(...)?

 

 

reader[reader.GetName(i)].ToString();

kan vel også skrives om til reader.ToString() ;)

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...