Manfred Skrevet 3. juli 2006 Del Skrevet 3. juli 2006 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... Lenke til kommentar
j000rn Skrevet 3. juli 2006 Del Skrevet 3. juli 2006 Control c = Page.FindControl( "Username" ); if( c != null && c is TextBox ) ( (TextBox)c ).Text = "manfred"; Lenke til kommentar
Manfred Skrevet 14. juli 2006 Forfatter Del Skrevet 14. juli 2006 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
Manfred Skrevet 14. juli 2006 Forfatter Del Skrevet 14. juli 2006 (endret) Page henviser i dette tilfellet til MasterPage'en Hvordan kan jeg få tak i controls'a i den aspx-fila jeg sitter med a? Endret 14. juli 2006 av Manfred Lenke til kommentar
Manfred Skrevet 14. juli 2006 Forfatter Del Skrevet 14. juli 2006 haha... løste det... denne ble grisete 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... Lenke til kommentar
j000rn Skrevet 15. juli 2006 Del Skrevet 15. juli 2006 haha... løste det... denne ble grisete 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
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå