我可以使用`DataTable.Select(filterString)`来控制显示的行,还可以使用`DataGridView.Sort()`来控制它们显示的顺序吗?

时间:2009-12-03 15:06:12

标签: c# winforms datagridview datatable

如果我写:

myDataGridView.DataSource = myDataTable.Select(fitlerString);
myDataGridView.Sort(myDataGridView.Columns[1], ListSortDirection.Ascending)

我收到InvalidOperationException消息

"DataGridView control must be bound to an IBindingList object to be sorted." 

但我无法找到一种方法来获取只有DataRow[]调用中所需行的数据表(而不是DataTable.Select())。

我可以使用DataTable.Select(filterString)来控制DataGridView中显示的行,还可以使用DataGridView.Sort()来控制它们显示的顺序吗? 如果它不会在其他地方引起问题,我宁愿能够将我的DataSource保存为DataTable,以避免在代码库中的其他地方更改假设。

1 个答案:

答案 0 :(得分:1)

您将不得不填补数据。好消息是我发现了Wessam Zeidan的blog entry,其代码已经编写完成。他解决的问题有点不同,但我认为它会对你有所帮助。主要内容是将DataRow []对象转换回DataTable。请务必阅读评论,以及他们可能会提供帮助。

祝你好运,好好整理!