GridView 刪除資料時出現 ClientScriptManager.RegisterForEventValidation 訊息

完整問題:
-------------
如果我要在2005的GridView刪除選取的資料列,結果在點選刪除按紐後,按確定,卻出現下面的錯誤
"回發或回調參數無效。在配置中使用 或在頁面中使用 <%@ Page EnableEventValidation="true" %> 啟用了事件驗證。出於安全目的,此功能驗證回發或回調事件的參數是否來源於最初呈現這些事件的伺服器控制項。如果資料有效並且是預期的,則使用 ClientScriptManager.RegisterForEventValidation 方法來註冊回發或回調資料以進行驗證。"

解答:
-------------
ASP.NET 2.0 新增了一個網頁安全檢查的機制,當它發現 postback 資料不是原始的控制項發出來的,就會出現這個錯誤。如果網頁上有一些特殊的寫法會去修改 postback 資料,也會出現這個錯誤訊息。這種情況的解決方法有3個方法:
1.呼叫ClientScriptManager.RegisterForEventValidation,要在Render裡指定Control的uniqueId.
2.直接將網頁前置標籤加入EnableEventValidation屬性 ..<%@ Page Language="C#" EnableEventValidation="false" %>
3.修改 web.config 的pages元素,這比較不安全.

沒有留言:

張貼留言