Dim NewColumn As New DataColumn()
With NewColumn
            .DataType = System.Type.GetType("System.Decimal")
            .ColumnName = "NewColumn"
            .Expression = "sum(..)"
End With
ds.tables("ddd").Columns.Add(NewColumn) '增加列
datagrid.DataSource = ds.Tables("ee").DefaultView
datagrid.databind()

解决方案 »

  1.   

    1. 
    BoundColumn bc1 =  new BoundColumn();
    bc1.DataField = "product_nm";
    bc1.HeaderText = "Name";
    bc1.ItemStyle.Width = Unit.Pixel(250);
    myDataGrid.Columns.Add(bc1);2. add a column to your DataTable3. in ItemDataBound event handlerTableCell tc = new TableCell();
    tc.Text = DataBinder.Eval(e.Item.DataItem,"SomeDataColumn").ToString();
    e.Item.Cells.Add(tc);
      

  2.   

    To:思歸
    我曾經用的是你所說的第一種方法,但是顯示不了。
    VB代碼如下:
    Dim newCol As New BoundColumn()
    newCol.DataField = "Status"
    newCol.ReadOnly = True
    newCol.HeaderText = "S"
    newCol.SortExpression = "Status"
    newCol.Visible = True
    GridInfo.Columns.Add(newCol)
      

  3.   

    try
    <%@ Import Namespace="System.Data" %>
    <%@ Import Namespace="System.Data.SqlClient" %>
    <script language="VB" runat="Server">
    Sub Page_Load(o As Object, e as EventArgs)
     if Not IsPostBack then Dim newCol As New BoundColumn()
    newCol.DataField = "au_fname"
    newCol.HeaderText = "First Name"
    DataGrid1.Columns.Add(newCol) dim da as SqlDataAdapter = new SqlDataAdapter("select * from authors", _
    "server=localhost;database=pubs;uid=sa;pwd=;") dim ds as New DataSet()
    da.Fill(ds,"authors")
    DataGrid1.DataSource = ds.Tables("authors").DefaultView
    DataGrid1.DataBind()
     end if
    End Sub
    </script>
    <form runat="Server">
    <asp:DataGrid id="DataGrid1" runat="Server" AutoGenerateColumns="false">
    <Columns>
    <asp:BoundColumn  DataField="au_lname" HeaderText="Last Name" />
    </Columns>
    </asp:DataGrid>
    </form>
      

  4.   

    在dataset里加,再bind到datagrid试一下
      

  5.   

    不能在dataset裡頭處理,因為我要把AutoGenerateColumns="False",不能按dataset裡的字段顯示,要按照動態字段顯示。
      

  6.   

    我就是动态的,没有问题,把你连数据库到绑定grid的代码贴出来
      

  7.   

    想請問一下浪侠,
    你是用DataGrid.Columns.Add(newCol)的方法嗎?
      

  8.   

    the one BoundColumn in the code is for demo purpose, you can just remove it<%@ Import Namespace="System.Data" %>
    <%@ Import Namespace="System.Data.SqlClient" %>
    <script language="VB" runat="Server">
    Sub Page_Load(o As Object, e as EventArgs)
     if Not IsPostBack then DataGrid1.AutoGenerateColumns = false Dim newCol As New BoundColumn()
    newCol.DataField = "au_fname"
    newCol.HeaderText = "First Name"
    DataGrid1.Columns.Add(newCol) newCol = New BoundColumn()
    newCol.DataField = "au_lname"
    newCol.HeaderText = "Last Name"
    DataGrid1.Columns.Add(newCol) dim da as SqlDataAdapter = new SqlDataAdapter("select * from authors", _
    "server=localhost;database=pubs;uid=sa;pwd=;") dim ds as New DataSet()
    da.Fill(ds,"authors")
    DataGrid1.DataSource = ds.Tables("authors").DefaultView
    DataGrid1.DataBind()
     end if
    End Sub
    </script>
    <form runat="Server">
    <asp:DataGrid id="DataGrid1" runat="Server"/>
    </form>
      

  9.   

    TO:思歸
    我終於解決問題了,放在Page_Load裡是不行的,必須放在Page_Init