在最后一个位置的DataView中添加行

时间:2012-01-19 12:53:34

标签: c# asp.net linq dataview

我需要在最后一个位置添加DataView中的行。 我已经使用了Dv.Table.rows.InsertAt(),但它按“指定”列对行进行排序。

我需要一些类似的东西。

  • 首先我在dataview中添加表格并按指定列排序。
  • 然后我需要在不中断已经排序的行的情况下在数据视图的末尾添加(添加的行不应该排序)。

正在发生的事情

  • 当我在数据视图中添加表中的值时,它被指定列排序。

  • 或者,如果我在数据视图中添加第一行末尾添加的第一行和第一行添加的第二行...

请求帮助..

3 个答案:

答案 0 :(得分:1)

您必须在Gridview外部对数据进行排序,然后将数据放入Gridview,而不设置Gridview的排序属性。然后你可以添加新行,它将在最后显示。

答案 1 :(得分:0)

你可以试试这个。绝不是一个完美的解决方案。你可以考虑这个,直到你得到一个好的解决方案。

这里我正在对要绑定到网格而不是datagridview本身的数据表进行排序。

        DataTable dt = new DataTable();
        dt.Columns.Add("ID");
        dt.Columns.Add("Name");

        dt.Rows.Add("3", "Entered 1st");
        dt.Rows.Add("1", "Entered 2nd");
        dt.Rows.Add("2", "Entered 3rd");

首先对数据表进行排序。使用defalutview.ToTable方法将其复制到另一个表并添加新行。

        dt.DefaultView.Sort  = "ID ASC";

        DataTable dtnew = new DataTable();
        dtnew = dt.DefaultView.ToTable();


        dtnew.Rows.Add("1", "Should be last row");
        dataGridView1.DataSource = dtnew;

希望它有所帮助。

答案 2 :(得分:0)

您可以将数据视图保存在数据表中,然后添加最后一行:

dt.DefaultView.Sort = "Column Name";
dt = dt.DefaultView.ToTable();
dt.Rows.InsertAt(row,pos);