0

我有一个GridViewwho'sDataSource设置为DataTable. DataTable每隔几秒就会由一些后端逻辑更新,此时调用委托来刷新GridView

目前我只是重置DataSource, 但这会导致问题 - 它会中断网格视图中正在进行的任何编辑并使选择“跳转”到左上角的单元格。

更新逻辑基本上创建一个新的(关于列和行)DataTable

有没有没有任何缺点的标准方法?我唯一的选择是DataSource逐行更新当前,以编程方式插入值吗?

谢谢!

4

3 回答 3

1

我对这个问题的很多事情感到困惑。如果您使用的是GridView,而不是DataGridView,那么您使用的是 ASP.NET、WPF 或 .NET 1.1。它是哪一个?

下一个:你要DataTable完全创造一个新的?当然,当您重置DataSource. 它不知道您的新架构与DataTable它要替换的架构相同。它必须遍历列并重新建立绑定。

此外,它当然会丢失当前行。当前行属于旧的DataTable,而不是新的。

如果您希望绑定控件在更新基础数据源时保持其状态,请更新基础数据源,不要将其替换为新的。

于 2009-03-11T02:30:33.623 回答
1

您应该使用一个BindingList或一些支持更改通知的数据源。

于 2009-03-10T16:34:45.927 回答
0

您的更新是否发生在后台线程上?我不知道它是否适用于你的场景,但你可以试试这个线程绑定列表;查看示例以查看工作人员愉快地编辑网格。

于 2009-03-10T23:22:25.497 回答