在我的页面上有个GridView,字段是自动生成列和一个模板列,现在的效果是自动生成列总是在后面,模板列在第一列, 
我想要把模板列放到最后去,请问各位大哥这样可以吗?(前面的数据由于字段个数不确定,必须自动生成)

解决方案 »

  1.   

    切换到视图.
    选中gridview.点添加列.
    然后输入要绑定字段 以及输入该字段的名称 也就是列名..
    具体可以百度百度..这方面的东西比较多.
      

  2.   

    AutoGenerateColumns="False"
     手动写数据显示 模板列
     一般是这么做的多
      

  3.   

    恩,我也知道手工绑定的话是比较方便的。
    但是我GridView前面的列是取的一张模板表里的数据字段,最后一列我想要放个模板列,模板列里放一个DIV+GRIDView,用来显示这一行的明细信息。并且让这个模板列换行显示,运行的时候默认是隐藏的,鼠标点当前行的时候才显示。相当于是查看明细
      

  4.   

    要实现你的方法可能GridView达不到,除非重写GridView.有个最笨的方法你可以试试:
      就是设置 AutoGenerateColumns="False"
    然后 在 sql语句中控制,也就是说,你要显示哪些字段的顺序是你所写的 sql语句中的顺序,即  
      select  字段1,字段2,字段3,字段4,…… From 表sql语句可以动太生成
      

  5.   

    在databound里添加模板列
    或查询数据后动态建表,添加列,再绑定数据
      

  6.   

    恩,那个SQL语句已经可以生成了,并且可以绑在GRIDVIEW上了,可就是那个模板列总是在第一列,真是不好办啊
      

  7.   

    在RowDataBound里能动态创建模板列吗,并且能放入一个DIV和GRIDVIEW
      

  8.   

    http://hi.baidu.com/sharenet/blog/item/df14b51c9a74078e86d6b65f.html
    给你看看这个吧
      

  9.   

    这很简单。大致是,首先设置属性AutoGenerateColumns="False" ,假设数据源是一个DataTable,并且你在设计时仅仅声明了2列(下面代码中要判断这个"2"),你可以在GridView的 DataBinding 事件处理方法中写:    protected void GridView1_DataBinding(object sender, EventArgs e)
        {
            if (!GridView1.Columns.Count<=1)
            {
                foreach(DataColumn c in GetYourDataSourceTable();.Columns)
                {
                    DataControlField cc = new AutoGeneratedField(c.ColumnName)  //或者 CheckBoxField()
                    cc.HeaderText = c.ColumnName,
                    cc.DataField = c.ColumnName
                    GridView1.Columns.Insert(0, cc);
                }
            }
        }这其实很简单的哦,稍微(独立地)抛析过一次GridView结构就可以推论出来这个代码。
      

  10.   

    if (!GridView1.Columns.Count<=2)
      

  11.   

    恩,我和你做的差不多,是这样写的
    protected void GridAcc_RowCreated(object sender, GridViewRowEventArgs e)
        {
             if (e.Row.RowType == DataControlRowType.DataRow)
            {
                TableCell Tbcell = new TableCell();
                Tbcell.ID = "Cell2";            e.Row.Cells.Add(Tbcell);
                GridView Grid = new GridView();
                Grid.ID = "GridView2";
                Grid.HeaderStyle.BackColor = System.Drawing.Color.White;
                e.Row.Cells[15].Controls.Add(Grid);
                e.Row.Cells[15].Width = 0;
            }
        }谢谢楼上的大哥