08. oktober 2008 - 19:31
Der er
19 kommentarer og 2 løsninger
Udskrive html
Hej eksperter, Sidder i øjeblikket og er ved at lære ASP.NET og har tænk på, hvordan man får det til at udskrive html? F.eks. i PHP, der vil man jo bare skrive html'en i et loop. Hvordan gør man det i asp.net?
Annonceindlæg fra SoftwareOne
08. oktober 2008 - 19:42
#1
Du kan udskrive via: Response.Write("<b>Din tekst</b>") Så står "Din tekst" med fed.
08. oktober 2008 - 19:44
#2
Hvis det er ikke svaret, smide lige noget PHP kode så man kan se hvad du mener..
08. oktober 2008 - 19:44
#3
Man kan men man boer ikke - Response.Write er ikke god ASP.NET ! Brug server side kontroller. Og skal man endelig selv formatere i en loop saa brug en repeater !
08. oktober 2008 - 19:44
#4
hey thesurfer, ja, det fandt jeg lige ud af hehe. Men hvad nu, hvis man skriver selve koden i .cs filen? Så er man doomed? ;)
08. oktober 2008 - 19:46
#5
Hey arne :) Det lyder meget smart, må lige se hvad sådan en repeater gør! Du har tilfældigvis ikke nogle kode eksempler på det, vel? Helst i C# :)
08. oktober 2008 - 20:08
#6
<%@ import namespace="System.Data" %> <%@ import namespace="System.Data.SqlClient" %> <html> <head> <script language="C#" runat="server"> void Page_Load(Object sender, EventArgs e) { SqlConnection con = new SqlConnection("server=ARNEPC3;Integrated Security=SSPI;database=Test"); con.Open(); SqlCommand cmd = new SqlCommand("SELECT * FROM T1", con); SqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection); MyDataList.DataSource = rdr; MyDataList.DataBind(); } </script> </head> <body> <form runat=server> <table border> <asp:Repeater id="MyDataList" runat="server"> <ItemTemplate> <tr> <td><%# DataBinder.Eval(Container.DataItem,"F1") %></td> <td><%# DataBinder.Eval(Container.DataItem,"F2") %></td> </tr> </ItemTemplate> </asp:Repeater> </table> </form> </body> </html>
08. oktober 2008 - 20:13
#7
C# koden er inline men kunne lige saa godt vaere i .aspx.cs
08. oktober 2008 - 20:14
#8
Mange tak! Jeg fandt også lidt selv - google ved jo alt ;) Nu er det så bare det, at jeg hiver noget data ud fra databasen og smider det i lister. Er det muligt at bruge den i forbindelse med en liste af objekter på nogen måde? Er godt nok lidt blank på det punkt ;)
08. oktober 2008 - 20:27
#9
Jeg tror bare at du skal finde en passende server side web kontrol.
08. oktober 2008 - 20:36
#10
Hmm, må vist bare bruge Response.Write tror jeg - det andet er vist for avanceret til mit miveau. Ved ikke, hvem af jer der skal have point? Eller skal I dele dem?
08. oktober 2008 - 22:01
#11
bmdk> Du skriver "smider det i lister".. hvad mener du med det? I ASP.NET har du f.eks. ListBox og DropDownList. Begge disse tager imod typen ListItem. Du kunne f.eks. loope og tilføje dem.. noget i stil med for(int i = 0; i < 5; i++) { ListItem li = new ListItem("vaerdi_nr_" + i,"tekst nr: " + i); IdPåDinListe.Items.Add(li); } Erstat "IdPåDinListe" med ID'et på din liste.. Noget i den stil.. jeg husker ikke helt syntaxen.. :-)
08. oktober 2008 - 22:07
#12
hey thesurfer, Jeg hiver data ud af db'en og bygger objekter op. Disse objekter bliver lagret i en liste, som sendes med op igennem lagene. Dvs. at jeg vil have den til at udskrive som følger på web (pseudo kode): for(Objekt o i MinListe) { <table> <tr> <td>o.Navn</td> <td>o.Adresse</td> </tr> </table> } Ligesom man kan i f.eks. JSP og PHP. Dvs den udskriver en ny tabel for hvert objekt. Hpber det giver mening :)
08. oktober 2008 - 22:14
#13
Jeg har næsten lige arbejdet med VB.NET, så syntaksen er nok ikke helt korrekt.. Men det bliver nok noget i stil med: for(Objekt o i MinListe) { Table t = new Table; TableRow tr = new TableRow; TableCell navn = new TableCell; TableCell adresse = new TableCell; navn.Text = o.Navn; adresse.Text = o.Adresse; tr.Cells.Add(navn); tr.Cells.Add(adresse); t.Rows.Add(tr); } Det kan godt være, at der skal "()" før ";" ved defineret af "t", "tr", "navn" og "adresse" kontrollerne..
08. oktober 2008 - 22:17
#14
Doh! Det kommer man ingen steder med.. :-) Linien " Table t = new Table;" skal ikke være der, da den jo så kun eksisterer i selve løkken.. Jeg ved dog ikke helt hvordan man tilføjer en control til siden, i stedet for bare en anden control.. Eksempel: Hvis der allerede eksisterer en tabel med ID "t" og runat="server", kan man tilføje rows via: t.Rows.Add(DenNyeRow) Jeg tror at man skal tilføje tabellerne til Page. Dvs: Page.Controls.Add(t)
09. oktober 2008 - 04:20
#15
For sådan en tabel vil du enten bruge en passende server side kontrol eller selv lave HTML tags med en repeater som vist ovenfor. Og den pæne måde at lave det på i JSP er også med taglibs (JSTL, Struts, JSF, whatever), hvilket svarer rimeligt til ASP.NET måden.
28. oktober 2008 - 02:29
#16
bmdk ?
28. oktober 2008 - 08:48
#17
Sorry, havde fuldstændig glemt den tråd her :( Jeg fik hul på bylden til sidst med asp.net - skulle lige fatte det med controls og databind osv :) så det er perfekt! Vil I dele points, eller?
28. oktober 2008 - 14:19
#18
fint med mig
28. oktober 2008 - 19:37
#19
Cool! :) smider du også lige et svar så, thesurfer?
29. oktober 2008 - 02:54
#20
Yeps :-)
29. oktober 2008 - 08:27
#21
Således :) I skal have mange tak for hjælpen!
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.