To set the widht of a column on a GridView in ASP.NET you can hook into the RowDataBound event. This code detects the header line (datacontrolrowtype.header) and then hooks in to set the width of the columns. Instead of percentages you can use any Unit.* measure you like (pixels, mm)
VB.NET Example
Private Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowDataBound
If e.Row.RowType = DataControlRowType.Header Then
e.Row.Cells(0).Width = Unit.Percentage(10)
e.Row.Cells(1).Width = Unit.Percentage(20)
e.Row.Cells(2).Width = Unit.Percentage(10)
e.Row.Cells(3).Width = Unit.Percentage(60)
End If
End Sub
C# Example
protected void GridViewUpdates_RowDataBound(object sender, System.Web.UI.WebControls.GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.Header)
{
e.Row.Cells[0].Width = Unit.Pixel(110);
}
}