Da habe ich mich stundenlang durchs Internet gequält um herauszufinden, dass GridView.RenderControl() nicht richtig funktioniert – und dabei ist es wieder mal relativ einfach. Wenn man’s denn selber macht!
Also „rendere“ ich mein GridView doch gleich selber – ich durchlaufe alle Zeilen und Spalten und bastle mir daraus eine kleine HTML-Tabelle. Fertig. Excel versteht das! Und das Ganze hat noch den Vorteil: ich weiß was da passiert – und kann meine HTML-Tabelle so anpassen wie ich will! Also z.B. jede zweite Zeile farbig markieren und ähnliche Scherze.
Warum eigentlich nicht gleich so?
public static string GetGridViewAsHTML(GridView gv)
/// Wandelt ein Gridview in eine HTML-Tabelle um
{
int Spalten = gv.Columns.Count;
int Zeilen = gv.Rows.Count;
string ausgabe = „<table border=1><tr style=\“color:blue\“>“;
string wert = „“;
for (int s = 0; s < Spalten; s++)
{
ausgabe += „<th>“+gv.Columns[s].HeaderText + „</th>“;
}
ausgabe += „</tr><tr>“;for (int z = 0; z < Zeilen; z++)
{
for (int s = 0; s < Spalten; s++)
{
wert = gv.Rows[z].Cells[s].Text;
ausgabe += „<td>“ + wert + „</td>“;
}
ausgabe += „</tr><tr>“;
}
ausgabe += „</tr></table>“;
return ausgabe;
}