我想在cs里设置gridview的表头名称 
我这样试了一下不对: 
GridView1.Columns[1].HeaderText ="姓名"; 行 32:        GridView1.DataSource = dt; 
行 33:        GridView1.AutoGenerateColumns = false; 
行 34:        GridView1.Columns[0].HeaderText ="ID";
行 35:        GridView1.Columns[1].HeaderText ="姓名"; 
行 36:        GridView1.DataBind(); 
错误提示是:System.ArgumentOutOfRangeException: 索引超出范围。必须为非负值并小于集合大小。
请教各位大师

解决方案 »

  1.   

    GridView还没添加任何列吧?
      

  2.   

    GridView1.DataSource = dt; ->> 
    GridView1.DataSource = dt.DefaultView;再查一下,dt 返是否返回的是个空值.
      

  3.   

    把语句顺序换一下
     
    行 33:        GridView1.AutoGenerateColumns = false; 
    行 34:        GridView1.Columns[0].HeaderText ="ID"; 
    行 35:        GridView1.Columns[1].HeaderText ="姓名"; 
    行 32:        GridView1.DataSource = dt;
    行 36:        GridView1.DataBind(); 试试看~
      

  4.   


    GridView怕还没填充数据吧,最好写到页面上,非要这样写的话,先绑定了试试
    行 32:        GridView1.DataSource = dt;GridView1.DataBind(); 
    行 33:        GridView1.AutoGenerateColumns = false; 
    行 34:        GridView1.Columns[0].HeaderText ="ID"; 
    行 35:        GridView1.Columns[1].HeaderText ="姓名"; 
    行 36:         
      

  5.   

      GridView1.DataSource = dt; 
     GridView1.DataBind(); 
    先绑定之后再修改吧。
    GridView1.AutoGenerateColumns = false; 
     GridView1.Columns[0].HeaderText ="ID"; 
      GridView1.Columns[1].HeaderText ="姓名"; 
      

  6.   

     GridView1.DataSource = dt; 
     GridView1.DataBind(); 
    先绑定,再修改。
    GridView1.AutoGenerateColumns = false; 
     GridView1.Columns[0].HeaderText ="ID"; 
    GridView1.Columns[1].HeaderText ="姓名"; 
      

  7.   

    问题可能还是出在前台页面,是不是前台页面没有手动写绑定列呀试下
    GridView1.AutoGenerateColumns = true; 
      

  8.   

    确定GridView的AutoGenerateColumns设置为False;使用GridView的“编辑列”,添加一个绑定字段:“BoundField”,在该绑定字段的BindField的属性中的数据中的DataField中添加你要绑定的数据库中表的列的名称,然后用你的代码没问题了,或者是在“外观”中的“HeadText”中输入要显示的名称也可以实现。
      

  9.   

    这段代码有两个问题:
     
    一、GridView1.AutoGenerateColumns = false; 
    这里由于是 false,所以没有自动创建列。
     
    二、即使上面指定为 true,也会发生错误,为什么呢?因为动态创建的列是不会存储在公共可访问的字段集合中的,也就是说即使显示了 n 列,m 行,GridView1.Columns.Count 结果也是 0,也就不能对列进行索引。
     
    你可以在数据源中改变列标题:
    比如:
    dataView.Table.Columns[0].ColumnName = "列1";
      

  10.   

    第一:没开自动创建列,要设置也是在绑定后设置
    如果没开自动创建,aspx页面上也没有,那必须后台CS代码为其添加绑定列,或其他类别的列
      

  11.   

            SqlConnection scon = ADODB.getConnection();
            scon.Open();
            SqlDataAdapter sda = new SqlDataAdapter("select * from bj",scon);
            DataSet ds = new DataSet();
            sda.Fill(ds);
            GridView1.DataSource = ds;
            GridView1.DataSource = ds.Tables[0].DefaultView;
            GridView1.DataBind();
            GridView1.HeaderRow.Cells[0].Text = "ID";
            GridView1.HeaderRow.Cells[1].Text = "班级";
            ds.Clear();
            scon.Close();
      

  12.   

    C# CodeBoundField BoundfieldID = new BoundField();
    BoundfieldID.DataField = "ID";
    BoundfieldID.HeaderText = "ID";
    GridView1.Columns.Add(BoundfieldID);
    用这样的方式试试,你可以用个二维数组,用个循环搞定他
      

  13.   

     GridView1.HeaderRow.Cells 可以设置列宽么
      

  14.   

    GridView1.Rows[0].Columns[0].HeaderText="ID";
    这样试下
      

  15.   

    gridview1.HeaderRow.Cells[0].Text = "ID";  
    gridview1.HeaderRow.Cells[1].Text = "姓名";  
      

  16.   

    if(gridview1!=null)
    {
    //你的操作
    }