2011-07-12 57 views
0

我有一个asp.net网络应用程序。主线程启动一个用随机生成的数据填充(高速)DataTable的子线程。我将DataTable保存在Application对象中。asp.net - 不断更新网格

我想绑定一个GridView到这个DataTable每次新行添加到表中。

我该如何做到这一点?每次DataTable更新时,主线程如何在我的GridView上调用DataBind?

谢谢。

回答

0

将视图中的网格绑定到应用程序中的数据集需要回发。如果以高速率以编程方式添加行,则需要为每个插入操作执行大量回发(这将变得杂乱无章),或者对回发的正常频率感到满意。

如果您想要将它们快速放入网格而无需回发,则需要使用脚本将它们添加到视图中,然后按计划回发到应用程序。

0

不,它不能。你最好的选择是把它放在更新面板中,并使用定时器检查更新,或者使用ajax调用来检查rowcount是否已更改,如果是,则更新更新面板。 还有其他“不太容易”的选项,如推送通知(即彗星框架)

你想完成什么,必须有实时更新? 大多数网络应用都使用轮询技术来检查服务器。

+0

我已经在更新面板里面,每一毫秒都有一个触发gridview数据绑定的计时器。但是数据速率可能会随着时间而变化,并且在数据速率为100行/秒的时段内执行1000次数据绑定/秒似乎很繁琐。我需要以基于事件的方式触发数据绑定过程,而不是基于时间。我对如何放置Ajax调用感兴趣,该调用检查我的表是否已更新。这是否也意味着基于时间的方法?希望得到任何研究环节。谢谢。 – laailalalaa

+0

你为什么要绑定1000秒?你的数据甚至不能回复那么快,所以永远不会重要的是它快得快。你试图完成什么来让它绑定得这么快? –

+0

是的 - 这意味着基于时间的方法 - 因为它是投票。另一个选项是一些推送通知,但实现似乎很难 - 请参阅:http://stackoverflow.com/questions/5427681/how-do-modern-implementations-of-comet-reverse-ajax-work-any-stable-c- wcf-or-as对于您检查的轮询方法,基于最后一次说明的时间戳,每两秒更新一次数据。您不会通过每秒轮询1000次来快速处理大量数据。没有人会这样做,所以必须再问一次你想在这里完成什么? –