foreach (DataGridItem item in DataGrid1.Controls[0].Controls)
{
  if (item.ItemType == ListItemType.Header)
  {
    item.Cells[0].Text = "姓名";
    item.Cells[1].Text = "上午签到";
    ....
  }
}

解决方案 »

  1.   

    我想知道
    1.出错的原因。其实邦定前写表也可以实现,如:
    .....
         sqlDataAdapter1.Fill(dataSet1,0,9,"dm_browsegrid");
         firstTable=dataSet1.Tables["dm_browsegrid"];
         firstTable.Columns[0].ColumnName="    姓名 ";
         firstTable.Columns[1].ColumnName="上午签到";
         firstTable.Columns[2].ColumnName="上午签退";
         firstTable.Columns[3].ColumnName="下午签到";
         firstTable.Columns[4].ColumnName="下午签退";
         firstTable.Columns[5].ColumnName="所处部门";
         DataGrid1.DataSource=firstTable; 
    ......
    2.    如果出错的原因在于顺序的话,是什么顺序?我在页面加了一个按钮,添加最初的
                      DataGrid1.Columns[0].HeaderText="姓名";
    DataGrid1.Columns[1].HeaderText="上午签到";
    DataGrid1.Columns[2].HeaderText="上午签退";
    DataGrid1.Columns[3].HeaderText="下午签到";
    DataGrid1.Columns[4].HeaderText="下午签退";
    DataGrid1.Columns[5].HeaderText="所在部门";
    DataGrid1.Columns[6].HeaderText="员工代码";
     代码,同样提示索引错误。而此时page_load已进行完毕,怎么回事,请再次
    赐教。
      

  2.   

    把代码写在DataGrid的ItemDataBound事件里吧,DataGrid每生成一行之前都会所触发这事件。