Aximili Aximili - 4 months ago 17
ASP.NET (C#) Question

.NET GridView - Can you right-align just one column?

Can you easily right-align just one column in a GridView?

I have this

<asp:GridView ID="GridView1" runat="server"></asp:GridView>

It is bound to a DataTable (generated dynamically) that has many columns. I just want the 'Price' column to be right-aligned.

(Coming across this problem, I am wondering if I should be printing out HTML
instead of using a GridView. Using HTML I would have total control.)


Yes, you can, but I think if you have AutoGenerateColumns set to true (which it is by default) then you need to right align the column using the RowDataBound event. As a side note, if it's easier you can set AutoGenerateColumns to false and use BoundFields which will give you more formatting options and will probably eliminate the need for the RowDataBound event.


<asp:GridView ID="GridView1" OnRowDataBound="GridView1_RowDataBound" runat="server"></asp:GridView>


protected void GridView1_RowDataBound(object o, GridViewRowEventArgs e)
    //Assumes the Price column is at index 4
    if(e.Row.RowType == DataControlRowType.DataRow)
        e.Row.Cells[4].HorizontalAlign = HorizontalAlign.Right;

Hope that helps.