200910291437GridView - CommandField問題


Q:GridView 預設的 CommandField去做編輯、刪除、修改動作,卻發現後置程式碼裡面的相關事件都會被執行兩次?

A:S君為了這問題,花了兩天的時間,查看程式是否有問題? ㄡ還懷疑他是否寫錯或滑鼠按兩下 ...。

後來上網爬文發現這是 Bug,依據〔參考資料3〕,這跟 CommandField的屬性 ButtonType定義有關,如果定義成 ButtonType="Image",則執行時,相關事件都會跑兩次。

解決方法:
    1.〔參考資料3〕說只要將 CommandField的屬性 ButtonType 由圖像(Image)改為按鈕(Button),就不會發生問題。
    2. 改用 AutoGenerateDeleteButton、AutoGenerateEditButton,其語法見〔參考資料1〕。
    3. 改用 TemplateField 或 使用 JavaScript程式,細節見〔參考資料2〕。


參考資料:
1. GridView的編輯、修改、刪除,為何都會重複執行兩次?

2. A GridView CommandField of type Image causes two page submits

3. 同一次回發被處理了兩次,還有誰遇到過?:大陸網站

 

沒有上一則|日誌首頁|沒有下一則
回應
贊助商連結