一个页面中只有一个gridview,现需要根据不同按钮选择不同的数据表,将数据显示在gridview中,有什么方法可以动态创建表头,和取得想要字段的值吗?

解决方案 »

  1.   

    <HeaderTemplate>
    <%=headico%>
    </HeaderTemplate><ItemTemplate>
    <%# ((DataRowView)Container.DataItem)["pic"] %>
    </ItemTemplate>
    这样绑定不可以吗
      

  2.   

    不同表绑定字段也会不一样的……最好不要这样用所有的都是动态的,不如直接自己生成HTML代码好了GV出来也是个TABLE而已
      

  3.   

    我的各个button事件里帮定了不同的SQL语句,用于选择不用的表,我把gridview的AutoGenerateColumns属性设置为true时,可以动态把不用表的数据显示出来,但是其表头却是SQL表里面的表头(全英文的),我想另外再设置下自己定义的表头,有什么属性方法可以修改得了吗?
      

  4.   

    这就要递归查询表头的内容,你可以从网上找找RealWord 的GridView列子,那就是个动态创建表头的控件,很不错
      

  5.   

    现在是可以动态把数据显示出来,但表头只能是SQL里的表头,我想把表头内容替换下。
      

  6.   

    select username as 用户名 from 表名
    这是动态显示girdview每一列列名的sql语句
      

  7.   

    select username as 用户名 from 表名
    只能一次取一列吗?
    可以一起取吗?
    select username as 列名1 列名2 .. from 表名?
      

  8.   

    写错了,select * as 列名1,列名2 .. from 表名?
    上面这样写,列名可以显示在表头那吗?
      

  9.   

    void ColSpan()//合并列单元格
      {
       for(int i=0;i<prevDg.Items.Count;i++)
       {
        if (prevDg.Items[i].Cells[3].Text.Trim()=="0" && prevDg.Items[i].Cells[4].Text.Trim()=="0" )
        {
         prevDg.Items[i].Cells[2].ColumnSpan=3;
         prevDg.Items[i].Cells[3].Visible=false;
         prevDg.Items[i].Cells[4].Visible=false;
        }
       }
      }
      void RowSpan()//合并行单元格
      {
       int j;
       int n;
       for(int i=0;i<prevDg.Items.Count;i++)
       {
        n=1;
        for (j=i+1;j<prevDg.Items.Count;j++)
        {
         if(prevDg.Items[i].Cells[0].Text.Trim()==prevDg.Items[j].Cells[0].Text.Trim() && prevDg.Items[i].Cells[7].Text.Trim()==prevDg.Items[j].Cells[7].Text.Trim())
         {
          n += 1; 
          prevDg.Items[i].Cells[0].RowSpan=n;
          prevDg.Items[j].Cells[0].Visible=false;
         }
         else break;
        }
        i=j-1;
       }               
      }
      

  10.   

    老孟有个例子,去他blog上看看
      

  11.   

    可以动态生成gridview,根据你的结果集动态增加列
      

  12.   

    例如:往一个正常显示的GridView里末尾增加一列:   
      protected   void   Button1_Click(object   sender,   EventArgs   e)   
      {   
              BoundField   bf   =   new   BoundField();   
              bf.HeaderText   =   "newColumn";   
              bf.DataField   =   "Address";   
              GridView1.Columns.Add(bf);   
              //GridView1.DataBind();   //如果GridView通过指定其DataSourceID方式进行绑定,可不用此句。
    找到了个例子,哈哈,明天试下。。
      

  13.   

    写错了,select * as 列名1,列名2 .. from 表名?
    ===========================================
    select uid as 用戶編號,username as 用戶名,age as 年齡 ....... from yourtable再設 AutoGenerateColumns =True
      

  14.   

    用 DataTableMapping 建立数据库表和 DataTable 的是映射,然后填充 DataTable 绑定 DataTable   这也是一个改变字段名的方法要复杂看老孟的 http://dotnet.aspx.cc/article/01c21aa8-7de7-4c5d-ab0c-4736e259b773/read.aspx
      

  15.   

    AutoGenerateColumn=true
    即可显示SQL语句中的字段的