2

我的表格上有一个xtragrid(比如说myXtraGrid

我绑定一个datatable

myXtraGrid.DataSource = dtMyDataTable;

myXtraGrid.BestFitColumns();

假设我只有一个命名column,它具有以下三个数据:datatable"My Column"rows

My Column
------
3
1
2

比上grid (on runtime),我点击column header (My Column)并排序数据

(3 1 2) ascending: (1 2 3)

我的问题是;如何获得排序后的数据,Datatable如下所示?

My Column
------
1
2
3

runtime必须得到排序的数据并处理它。

谢谢朋友。

4

2 回答 2

0

你可以制作一个DataView.

myDataView dvMyView = new DataView(myDataTable);

DataView可以通过以下方式排序:

dvMyView.Sort = " MyColumn ASC ";

所以你有一个排序的DataView,你可以很容易地DataTable再次转换为:

myDataTable = dvMyView.toTable();

现在你有一个排序的DataSource:-)

PS 在我看来,最佳实践是创建一个objectlist (List<myClass>). 这Objectlist可以排序。另一个优点是 Grid 中更改的值会直接更改 List 中的对象!

我希望这会有所帮助。

于 2012-06-20T08:55:04.747 回答
0

您可以使用DefaultViewDatatable排序视图,稍后可以转换为表格

if (dtMyDataTable.Rows.Count > 0)
{
DataView dv = dtMyDataTable.DefaultView;
dv.Sort = "cy_column ASC";
dtMyDataTable= dv.ToTable();
}
于 2012-06-20T08:55:28.823 回答