How to define the style of a cell in asp: DataGrid?

advertisements

How can i set the (css) style of a cell in an asp:DataGrid?


What am i really trying to achieve? An html table, where i control the per-cell html content, and the per-row and per-cell css style:

<TABLE>
   <TR class="odd available">
      <TD class="holiday available hassub firstColumn">
          <P ...>...
      <TD class="blackout">
          <A href="...">...</A>
      <TD style="available">
          <SPAN ...>...</SPAN>
      <TD class="booked">
          <DIV ...>...</DIV>
      <TD class="orphan available">
          <DIV ...>...</DIV>
      <TD style="orphan booked checked">
          <SPAN ...>...</SPAN>
          <A href="...">...</A>
          <DIV ...>...</DIV>
   </TR>
   <TR class="blackout">
      <TD>34 points
      <TD><%# GetHtmlForCell() %>
   </TR>
</TABLE>

And it is accepted that an asp:Repeater cannot work in this case.

i have HTML that i need to generate; and i just have to see if ASP.net can generate required html. i'm guessing not, since "WebForms" means you don't generate HTML.

Bonus Chatter

An asp:DataGrid control in ASP.net renders multiple cells. The formatting of each style can be adjusted by setting various formatting properties, for example:

But there is no way to adjust the Style of a cell, e.g.

style="holiday blackout hassub"

Bonus Reading

Some unrelated bonus reading:


Assuming that you actually mean a GridView instead of the old DataGrid, you can use the CssClass property for the GridViewRow and TableCells.

For example in RowDataBound:

protected void Grid_RowDataBound(Object sender, GridViewRowEventArgs e)
{
    if(e.Row.RowType == DataControlRowType.DataRow)
    {
        if(e.Row.RowIndex == 0)
        {
            e.Row.CssClass = "odd available";
            e.Row.Cells[0].CssClass = "holiday available hassub firstColumn";
            // ....
            e.Row.Cells[4].CssClass = "orphan booked checked";
        }
        else if(e.Row.RowIndex == 1)
            e.Row.CssClass = "blackout";
    }
}