动态绑定列的代码放在if(!IsPostBack){
}内试试!

解决方案 »

  1.   

    楼上这样取得的是行数,这样可以:
    在page_load绑定事件中(在动态绑定列之前)计算列
    u=ds.Tables["Authors"].Columns.Count ;
    在动态添加列时每增加一列,u+1;
      

  2.   

    注意:
    ******DataGrid.Columns 集合包含 DataGrid 控件中呈现的显式声明的列。
    显式声明的列可与自动生成的列一起使用。当同时使用这二者时,首先呈现的是显式声明的列,其后是自动生成的列。自动生成的列不会添加到 Columns 集合中.
    尽管您可以编程的方式将列添加到 Columns 集合,但静态地列出相应列然后使用 Visible 属性显示或隐藏列更容易一些
      

  3.   

    因此:自动生成的datagrid.columns其count为0;
      

  4.   

    动态绑定的列名可以取到的:
    MyDataGrid.Columns[0].HeaderText;
    自动生成的列通过上面的方法取不到。
      

  5.   


        '*****************************
        '
        '取表头(标题)
        '*****************************
        Public Function fieldName(ByVal index As Integer) As String
            Dim tempStr As String
            Dim myitem As New DataGridItem(1, 1, ListItemType.Header)
            For Each myitem In Datagrid2.Controls(0).Controls
                If myitem.ItemType = ListItemType.Header Then
                    tempStr = myitem.Cells(index).Text
                    Exit For
                End If
            Next
            Return tempStr
        End Function
      

  6.   

    取table的列就可以了tabel是绑定到datagrid上数据源。
      

  7.   

    自己做的动态绑定列的列名可由DataGrid1.Columns[0].HeadText来获得.
    而当涉及到使用数据的时候,如楼上的所说,取被绑定到Datagrid的DataTable里的column的
    columnname就可以了.
      

  8.   

    由于特殊原因,我只能从datagrid中取得列名而不时通过数据表,能有什么方法呢?!~`