2011-07-12 54 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次來快速處理大量數據。沒有人會這樣做,所以必須再問一次你想在這裏完成什麼? –