public DataGrid MakeGrid(int f_GridCount)
{
     DataGrid newGrid=new DataGrid();
     newGrid.ID="dg_list"+f_GridCount.ToString();     newGrid.Attributes.Add("Width","100%");
     newGrid.Attributes.Add("Font-Name","Verdana");
     newGrid.Attributes.Add("CellPadding","1");
     newGrid.Attributes.Add("BorderWidth","1");
     newGrid.Attributes.Add("BorderColor","1");
     newGrid.Attributes.Add("CellSpacing","0");
     newGrid.Attributes.Add("GridLines","Both");
     newGrid.Attributes.Add("AutoGenerateColumns","False");     newGrid.ItemStyle.HorizontalAlign =HorizontalAlign.Center;
     newGrid.ItemStyle.Height=20;
     newGrid.ItemStyle.ForeColor=ColorTranslator.FromHtml("Black");
     newGrid.ItemStyle.BackColor=ColorTranslator.FromHtml("White");
     newGrid.ItemStyle.Font.Size=8;
 
     BoundColumn bColumn0 = new BoundColumn();
     bColumn0.DataField="c0";
     bColumn0.ItemStyle.Width=21;     BoundColumn bColumn1 = new BoundColumn();
     bColumn1.DataField="c2";
     bColumn1.ItemStyle.Width=70;     BoundColumn bColumn2 = new BoundColumn();
     bColumn2.DataField="c4";
     bColumn2.ItemStyle.Width=154;     newGrid.Columns.Add(bColumn0);
     newGrid.Columns.Add(bColumn1);
     newGrid.Columns.Add(bColumn2);

     return newGrid;
}
用以上代码生成DataGrid控件,怎么会出现6列。有三列值是重复的,但没列标题。

解决方案 »

  1.   

    有可能是newGrid.Attributes.Add("AutoGenerateColumns","False");的问题
      

  2.   

    能不能把你调用MakeGrid()的代码贴出来,看看你是怎样绑定数据源的。怎样在页面显示的。
      

  3.   

    默认的情况下,AutoGenerateColumns(自动创建列)是选中的,所以,你要把它去掉。
    newGrid.AutoGenerateColumns=False;
      

  4.   

    原来是把false写成Fasle了。不过我又遇到一个新问题。就是创建好DataGrid后,从代码加数据绑事件不成功。myGrid.ItemDataBound+= new DataGridItemEventHandler(Bind_Grid);
    private void Bind_Grid(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
    {
    }
      

  5.   

    补充一下。
    事件myGrid.ItemDataBound+= new DataGridItemEventHandler(Bind_Grid);
    是在下面的函数中
    private void xxx()
    {
        DataGrid myGrid=MakeGrid(f_GridCount);
        myGrid.DataSource=ds.Tables[0].DefaultView;    myGrid.ItemDataBound+= new DataGridItemEventHandler(Bind_Grid);
        myGrid.DataBind();
    }不执行绑定事件