GridView 中自动生成列后 再添加模板列的时候能否控制它在后面显示 默认都是显示到第一列去了
比如
            TemplateField temp = new TemplateField();
            temp.HeaderText = "sdfasf";
            dv.Columns.Add(temp);
这样它就给我加前面去了
在页面上直接加也是同样的效果不能用完成手动编辑列的方法来做,我比较讨厌,业务上也允许的,因为数据的列也是不固定的,在存储过程里生成的列根据情况变化分数都输光了,对不住大家,下次、下次多点

解决方案 »

  1.   

    别用 .Add(temp);
    印象中应该有一个有一个其他方法
      

  2.   

    楼楼上的 还有个是 Insert 一样的
      

  3.   

    可以用程序来动态生成列,这样就可以对生成的列任意进行处理了// 首先从数据库中读取数据
    DataTable dt = new DataTable();
    // dataAdapter.Fill(dt);GridView1.AutoGenerateColumns = false; // 不要自动生成列
    // 根据读出的数据动态生成列
    dt.Columns.Cast<DataColumn>().ToList().ForEach(c => GridView1.Columns.Add(new BoundField { DataField = c.ColumnName, HeaderText = c.ColumnName }));// 现在可以随便添加额外的列
    TemplateField temp = new TemplateField();
    temp.HeaderText = "sdfasf";
    GridView1.Columns.Add(temp);// 最后绑定数据跟一般情况的一样
    GridView1.DataSource = dt;
    GridView1.DataBind();
      

  4.   

    引发思考的帖子,MARK下,回家研究研究
      

  5.   

    7楼说的没错,我也想到了
    是只能这么做的,gridView是按顺序生成列的,因为我们考虑到的永远是先加模板列 再绑定数据,所以数据列肯定在后面
    除非gridview里有指明你现在添加的列是在绑定后才加上去的
    总之DOTNET控件也有很多不完美之处
      

  6.   

    选中GridView中的某一列,然后点击GridView控件右上角的小三角,就会有“左移列”“右移列”就可以换位置了
    你试试吧,在我这可以