Veröffentlicht 15. September 200618 j Wie kann ich beim Laden meiner Seite dynamisch eine HTML Tabelle generieren? Die darf nämlich keine feste Größe haben sondern die Anzahl der Zeilen soll beim laden der Seite ermittelt werden.
17. September 200618 j du errechnest im ASP.NET-Code wie viele Spalten/Zeilen die Tabelle haben soll, baust den HTML-Code dann im ASP.NET-Code zusammen und schreibst den zusammengebauten Code dann per Response.Write oder mittels eines asp:labels auf die Seite.
17. September 200618 j Autor Ja das Problem ist nur das mir der Name der Funktion um den HTMl Code zu schreiben nicht mehr einfällt. Ich habs mal mit der HtmlWriter Klasse probiert aber das hat irgendwie nichts bewirkt. Response.Write ist ja nur für Testausgaben geeignet, weil der damit ausgegebene Text immer am Anfang des Html Codes steht.
17. September 200618 j Ja das Problem ist nur das mir der Name der Funktion um den HTMl Code zu schreiben nicht mehr einfällt. Ich habs mal mit der HtmlWriter Klasse probiert aber das hat irgendwie nichts bewirkt. [...] Response.Write ist ja nur für Testausgaben geeignet, weil der damit ausgegebene Text immer am Anfang des Html Codes steht. HtmlWriter sagt mir nix in zusammenhang mit ASP.NET, aber die klassen HtmlTable, HtmlTableCell und HtmlTableRow sind speziell dafür da, daten in tabellen, zeilen und zellen rauszuschreiben. sind im namespace System.Web.UI definiert, AFAIR. wenn der inhalt der dynamischen tabelle (was ich annehme) aus einer datenbank o.ö. kommt, empfiehlt sich auch die verwendung eines DataGrid / DataSet aus System.Data. s'Amstel
17. September 200618 j Autor Danke werds mir mal angucken. Ja die Tabelle ist abhängig von einer Datenbank, aber der Inhalt nur indirekt. In der Datenbank sind Pfade zu Bildern enthalten die ich mit einer Tabelle schön auf der Seite darstellen will
18. September 200618 j Das ist doch ganz einfach, wenn Du beim Page_Load die Anzahl der Zeilen/Spalten kennst. Du legst im ASP.NET "HTML"-Text-Teil eine ganz normale, aber leere, Tabelle an, gibst ihr aber zusätzlich eine id und setzt die runat Eigenschaft auf "server". Nun kannst Du auf die Tabelle wie auf ein Objekt, dass den Namen trägt, den Du als id angegeben hast, zugreifen und nach belieben Veränderungen vornehmen. Du musst den HTML-Quelltext für die fertige Tabelle also nicht selbst erzeugen und als Zeichenkette herausschreiben, sondern kannst die Erzeugung der "<tr>"s und "<td>"s der ASP.NET Runtime überlassen. Brauchst Du ein Beispiel?
1. August 200817 j Hallo, ich weiß, dieser Thread ist schon ein paar Tage alt, aber dieses Thema interessiert mich sehr. Könnte mir jemand ein Beispiel für Bubbles Lösung geben?
4. August 200817 j Der Code deine Default.aspx-Datei: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>Meine dynamische Tabelle</title> </head> <body> <form id="form1" runat="server"> <div> <asp:Table ID="myDynamicTable" runat="server" GridLines="Both"> </asp:Table> </div> </form> </body> </html> [/PHP] Und als Code-Behind dieses hier: [code] using System; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { int numRows = 10; int numCols = 5; for (int r = 0; r < numRows; r++) { TableRow myRow = new TableRow(); for (int c = 0; c < numCols; c++) { TableCell myCell = new TableCell(); myCell.Controls.Add(new LiteralControl("myRow: " + r.ToString() + ", myCell: " + c.ToString())); myRow.Cells.Add(myCell); } myDynamicTable.Rows.Add(myRow); } } } [/code]
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.