在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. 樂觀鎖定 - Hibernate的併發問題
- 2. 實體框架 - 樂觀併發問題
- 3. 樂觀併發
- 4. 樂觀鎖樂觀併發控制
- 5. TransactionScope和樂觀併發
- 6. 樂觀併發更新
- 7. 樂觀併發返回值
- 8. Azure ARM API - 樂觀併發
- 9. MVC4 ApiController樂觀併發
- 10. 樂觀併發問題和改進解決方案
- 11. 樂觀併發問題剛剛開始發生,可能是什麼原因?
- 12. 問題與asp.net gridview
- 13. ASP.NET SqlDataSource Gridview問題
- 14. ASP.NET - GridView的問題
- 15. 亞音速和樂觀併發
- 16. ServiceStack.OrmLite支持樂觀併發性
- 17. MVC 4樂觀併發異常
- 18. Jaydata,Web Api和樂觀併發性
- 19. ConcurrentDictionary樂觀併發Remove方法
- 20. 樂觀併發所需的事務?
- 21. 意外的樂觀併發異常
- 22. 樂觀併發,而在EF 4
- 23. 在ASP.NET中編輯GridView時發生的問題:GridView變爲空
- 24. WCF和ASP.NET併發問題
- 25. 哪個併發控制更高效悲觀或樂觀併發控制
- 26. GridView問題ASP.NET/ADO實體
- 27. ASP.NET的GridView分頁問題
- 28. asp.net更新gridview問題
- 29. Asp.Net的GridView DataFormatString問題
- 30. GridView委託問題在ASP.Net
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