两个datagrid的列数和列类型完全一致,只是把第2个的datagrid数据追加到第1个的datagrid下面,请问如何合并显示?

解决方案 »

  1.   

    DataTable dt1 = new DataTable();
    dt1.Columns.Add("A");
     
    dt1.Rows.Add(new string[]{"1"});
    dt1.Rows.Add(new string[]{"2"});
    DataTable dt2 = new DataTable();
    dt2.Columns.Add("A");
    dt2.Rows.Add(new string[]{"3"});
    dt2.Rows.Add(new string[]{"4"});
    foreach(DataRow row in dt2.Rows)
    {
    dt1.ImportRow(row);
    }

    DataGrid g = new DataGrid();
    g.DataSource = dt1.DefaultView;
    g.DataBind();
    this.Panel1.Controls.Add(g);
      

  2.   

    因为我要把第一个数据读取出来用DataGrid排一下序,再连接第2个DataGrid,如果只是把datatable导入,这是未排序的所以不符合要求。我的数据不是放在库里面的因此只能用这种方式排序后再连接
      

  3.   

    DataTable的方式无法对数据进行排序,因我的数据读取硬盘上的文件,所以只能加到DataGrid里用DataGrid的排序特性排一下序,再加上第2个DataGrid的数据
      

  4.   

    DataTable 为什么不能排序????DataView dv = dt.DefaultView;
    dv.sort = "字段";
      

  5.   

    提示不能访问dv.sort,受保护级别限制
    如果上面的代码d1表按21的降序排列,最后显示在DataGrid里面的是2134,可以实现吗
      

  6.   

    可以但是比较麻烦 .在导入dt2的数据前
    表再加个字段

    dt.Columns.Add("S");DataView dv = dt1.DefaultView;
    dv.Sort = "a desc";for(int i=0;i<dv.count;i++)
    {
        dv[i].Row["S"] = i;
    }然后导入dt2的数据.
    dt2的S字内容与上面相同,只不过排序按升最得到到了个新的dv
    按s排序