I was looking into the forums.asp.net and I have found lots of people was searching about how to set GridView Column Width dynamically. So I thought it will be a good idea to write a blog post about it. So let’s take a an example for that. For that I have created a small model Employee class which will have three properties.
public class Employee
{
    public int  EmployeeId { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
}
Now let’s create a grid view control for that and then will bind the GridView and dynamically set the GridView Column width. Following is a GridView definition.
    
        
        
        
    
and following a code for binding GridView and Creating a column width dynamically.
protected void Page_Load(object sender, EventArgs e)
{
    if (!Page.IsPostBack)
    {
        BindGridView();
        SetGridViewWidth();
    }
}
public void BindGridView()
{
    var employees = new List()
        {
            new Employee() {EmployeeId = 1, FirstName = "Jalpesh", LastName = "Vadgama"},
            new Employee() {EmployeeId = 2, FirstName = "Vishal", LastName  ="Vadgama"},
            new Employee() {EmployeeId = 3, FirstName = "Teerth", LastName = "Vadgama"}
        };
    employeeGrid.DataSource = employees;
    employeeGrid.DataBind();
}
public void SetGridViewWidth()
{
   for (int i = 0; i < employeeGrid.Columns.Count; i++)
   {
       employeeGrid.Columns[i].ItemStyle.Width = 200;
   }
}
Here in the above code you have seen that I have first created a list of employee and then I have bind that list with employee GridView and then I have applied the column width with ItemStyle.Width property. When you run this code It will look like following.
That’s it. It’s very easy. Stay tuned for more..