在asp.net for Gridview中,如何避免樂觀併發? 當記錄處於編輯模式時,用戶如何限制不編輯?asp.net中gridview樂觀併發問題
回答
檢查,如果數據改變了客戶方:
我會建議其包含的信息和相同的文本框爲一個TextBox「CSS:能見度:隱藏」和只讀包含原始信息。那麼如果用戶更改了TextBox的值而不回發到服務器,則可以隨時使用JavaScript檢查客戶端。
鎖定用戶編輯:
其難以對ASP來管理這項事業的通信是asyncronious方式。 例如,您可以在數據庫表中添加一個「鎖定」(位)的新列,並且可以在有人輸入編輯模式時鎖定數據集。那麼您可以檢查其他用戶的鎖定值並限制他的編輯模式。 (關心會話耗盡等等;也許使用時間戳作爲鎖並在會話分鐘過期後打開鎖)。
如果用戶在編輯模式下alrdy:
你不能把他鎖(如果你不這樣做回發到服務器,並要求他在間隔鎖(會做我的AJAX))。 您只能在嘗試保存更改時檢查鎖定的值。但是這最終導致他改變了一些價值觀,並且他們會得到回覆。 也許你可以問他是否可以看到數據庫中改變的值,如果他想覆蓋這些改變。
希望這會有所幫助,沒有人
謝謝..我在第二個選項嘗試了你提到的,但在會話時間有點困難。 我有一個想法來解決:創建一個靜態列表變量並分配給應用程序變量,當用戶單擊特定記錄時需要將該ID存儲在列表變量中,更新或會話結束後必須從列表中刪除該ID。爲了在數據庫中工作,我想在應用程序本身中進行維護。 請幫助我這個想法去工作? 需要你寶貴的想法......! – Anand 2013-02-15 11:11:48
我建議將你在數據庫中提到的列表作爲自己的常規表格。 原因如果你的應用程序崩潰,你有一些未定義的狀態,並不能作出反應。例如,在會話耗盡的情況下,您可以通過時間戳創建鎖,並檢查鎖的時間戳是否爲15分鐘前。或者檢查鎖定數據的用戶是否仍在工作(會話存活)。否則你可以從數據庫中刪除鎖。 我建議將您的表格作爲獨立表格存儲在您的數據庫中。 – noonecares 2013-02-15 12:28:22
謝謝.. 我很清楚現在你的想法..我會與會議代碼 – Anand 2013-02-15 12:57:04
- 1. 實體框架 - 樂觀併發問題
- 2. 樂觀併發
- 3. Azure ARM API - 樂觀併發
- 4. TransactionScope和樂觀併發
- 5. 樂觀併發問題和改進解決方案
- 6. 亞音速和樂觀併發
- 7. 意外的樂觀併發異常
- 8. ConcurrentDictionary樂觀併發Remove方法
- 9. Jaydata,Web Api和樂觀併發性
- 10. 問題與asp.net gridview
- 11. ASP.NET - GridView的問題
- 12. GridView問題ASP.NET/ADO實體
- 13. GridView委託問題在ASP.Net
- 14. Asp.Net的GridView DataFormatString問題
- 15. NHibernate覆蓋樂觀場景中的併發性
- 16. Azre iOS客戶端SDK中的樂觀併發
- 17. 實體框架樂觀併發異常沒有發生
- 18. 在ASP.NET中使用GridView綁定問題
- 19. ASP.NET中使用VB.NET的GridView的問題
- 20. asp.net中的奇怪gridview問題
- 21. ASP.NET MVC音樂商店問題
- 22. 在jpa/spring/hibernate中簡單的樂觀鎖問題
- 23. Modal Popup Extender中的Gridview - 回發問題?
- 24. 在ASP.NET中回發問題
- 25. RavenDB抓住22 - 樂觀併發和其他客戶端
- 26. 樂觀與多版本併發控制 - 差異?
- 27. 對樂觀併發的數據庫支持
- 28. Azure存儲blob - 與Etag的樂觀併發性
- 29. 樂觀併發的版本號或時間戳?
- 30. 是否有可能以樂觀併發確保這種情況?
http://www.asp.net/web-forms/tutorials/data-access/accessing-the-database-directly-from-an-aspnet-page/implementing- optimistic-concurrency-with-the-sqldatasource-vb – Habib 2013-02-15 10:07:36
謝謝。 但我通過代碼綁定數據源,然後如何設置樂觀併發? – Anand 2013-02-15 10:15:28
我怎樣才能限制用戶編輯 – Anand 2013-02-15 10:30:53