實作 ASP.NET 多筆資料離線編輯

來源:互聯網
上載者:User

無廢話,本帖提供一個 ASP.NET 的樣本下載,包括五大功能「多筆編輯 + 離線編輯 + 多人並行寫入衝突偵測 (Concurrent) + 批次寫入資料庫 + 保留使用者在 GridView 的輸入值」。

日前版工我要把十幾年前的舊系統,翻新成 Web 介面,代碼也要重寫。為了搭配客戶的操作習慣,要能提供「離線」編輯的功能,亦即使用者在
ASP.NET 所做的多個「 建立、修改、刪除」內容,要能暫存在記憶體裡,等到最後單擊一個「存檔」Button,才一次回寫至資料庫。

-------------------------------------------------
本帖的樣本下載點:
http://files.cnblogs.com/WizardWu/090225.zip
(執行本樣本,需要 VS 2008 或 IIS,以及 SQL Server 資料庫)
-------------------------------------------------

樣本執行畫面如下:

* 功能 1 : 多筆編輯
* 功能 2 : 離線編輯 (這個最難)
* 功能 3 : 多人並行寫入衝突偵測 (Concurrent, 同時開啟兩個瀏覽器執行此樣本,即可測試此一功能)
* 功能 4 : 批次 (Batch) 寫入資料庫 + Transaction
* 功能 5 : 保留使用者在 GridView 的輸入值

功能說明:

* 功能 1 : 多筆編輯 :
就是 GridView 每一行每一列都可輸入,這也沒什麼,就討人厭的客戶和 SA 要求的功能。另
GridView 的每一行、每一列的控制項,如:TextBox,仍可搭配 Validator,或 AJAX 的
FilteredTextBoxExtender 等控制項,做使用者的輸入驗證。

* 功能 2 : 離線編輯 :
如,使用者單擊橘色行右方的「新增」按鈕,不會真的寫入資料庫,而是將使用者在 FooterRow
輸入的建立資料,暫存於記憶體的 DataTable
裡,使用者並能再持續建立多筆記錄。要等到單擊左下方的「存檔」按鈕,才會將使用者先前做的所有「建立、修改、刪除」資料,一次全部寫入資料庫,以模擬一些遠
古舊系統的操作模式。

* 功能 3 : 多人並行寫入衝突偵測 (Concurrent) :
捨棄 ObjectDataSource 控制項的
Concurrent 功能,改用資料表裡的一個 MODIFY_DT
欄位,來判斷是否在同一時間,有兩人或多人同時欲編輯資料庫裡的同一筆記錄。若是的話,只有先儲存者能正確寫入資料庫,並在儲存成功後,將目前時間一併寫
入資料庫的 MODIFY_DT 欄位;後儲存者將被迫放棄,必須先離開此頁後再回來、取得資料庫裡最新的 MODIFY_DT
欄位的最新時間後,才能儲存。

* 功能 4 : 批次寫入資料庫 + Transaction :
就是一次「建立、修改、刪除」多筆記錄至資料庫,並加上資料庫「事務 (Transaction)」,這也沒什麼,只要將多個 SQL 陳述式用「分號 (;)」串聯起來即可。唯
一要注意的是,多個語句中的 Parameter Name 不可重複。

* 功能 5 : 保留使用者在 GridView 的輸入值 :
由於「建立」功能內嵌在 GridView 的 FooterRow
裡,當使用者按下「新增」按鈕後,必須執行 GridView.DataBind(),以將建立一筆後的結果,即時顯示在 GridView
裡。但此舉將導致使用者在 GridView
其它既有資料行的輸入值遺失,導致操作上的不便。因此我在使用者按下「新增」按鈕後,將其它資料行每個控制項的輸入值,先暫存至一個 DataTable
裡;等到 GridView.DataBind() 之後,再從這個 DataTable 裡,將所有的值填回 GridView 的每一行每一列。

最近開發的都是一些小系統,沒機會用多高深的 Framework,或最新最炫的新技術,但必須靠一些硬底子功夫硬幹,以應付一些客戶和 SA 不合理的需求。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.