你的上面的代码写在哪里的?
写到DataGrid1的ItemDataBound事件中试试:
private void DataGrid_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
//你的代码
}

解决方案 »

  1.   

    autoGenerateColumn属性应该首先设置为True,然后设置DataGrid1的宽度,用下列语句试试:
    Me.Datagrid1.Columns(0).ItemStyle.Width = Unit.Percentage(50)
      

  2.   

    不要使用DataGrid1.Columns,因为你是自动生成列,Columns为0,所以“索引超出范围”。
    这样:
    private void DataGrid_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
    {
    if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
       {
         e.Item.Cells[1].Width=300;
       }
    }