開發語言:asp.net C# Web form
開發工具:visual studio 2010
功能簡介:
資料表:
[USER]
| USER_SID | USER_ID | USER_NAME |
[VALUE]
| VALUE_SID | USER_ID | VALUE_VALUE | VALUE_DATE |
資料流程:
一個表格(grid view)
顯示欄位:
| USER_NAME (Label) | VALUE_VALUE (TextBox)|
隱藏欄位:
| USER_ID | VALUE_SID |
一個存檔鈕(Button),grid view以panel包著,
Default Button為存檔鈕,在下面TextBox按下Enter可以觸發存檔
存檔時將有VALUE_SID的作update處理,無的作INSERT處理
以List<string> 將grid view row迴圈取值並建立:
INSERT部分: USER_ID LIST、VALUE_VALUE LIST
UPDATE部分: VALUE_SID、VALUE_VALUE LIST
在後端進行迴圈新增或更新
更新成功或失敗,以Message box顯示結果
問題:
使用者測試後發現連續按下Enter送出時資料會重複,
經分析發現為Insert處理要求連續送出造成,
改在存檔鈕事件裡第一行disable存檔鈕
但仍因網速使得第一行都沒有執行,就再次送出
再改成以javascript鎖定按鈕,js為local端處理應該無問題
開發端環境測試蓄意按下多次enter也無法「突破」js鎖定存檔鈕
但交由使用者測試後仍然造成資料重複
想請問是否有防止這種狀況下重複送出的做法呢?