Guybrush Threepwood Geschrieben 15. September 2006 Geschrieben 15. September 2006 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. Zitieren
derJan Geschrieben 17. September 2006 Geschrieben 17. September 2006 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. Zitieren
Guybrush Threepwood Geschrieben 17. September 2006 Autor Geschrieben 17. September 2006 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. Zitieren
Amstelchen Geschrieben 17. September 2006 Geschrieben 17. September 2006 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 Zitieren
Guybrush Threepwood Geschrieben 17. September 2006 Autor Geschrieben 17. September 2006 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 Zitieren
Bubble Geschrieben 18. September 2006 Geschrieben 18. September 2006 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? Zitieren
Guybrush Threepwood Geschrieben 18. September 2006 Autor Geschrieben 18. September 2006 Nein, aber danke. Hatte das bereits mit dem Tipp von Amstelchen gelöst Zitieren
Sephyr Geschrieben 1. August 2008 Geschrieben 1. August 2008 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? Zitieren
LordHexa Geschrieben 4. August 2008 Geschrieben 4. August 2008 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] Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.