2018年1月8日 星期一

[Error] Gridview & ScriptManager

經web ui contrls 更新Gridview (ScriptManager)時可能會出現以下錯誤

無效的回傳或回呼引數。已在組態中使用 <pages enableEventValidation="true"/> 或在網頁中使用 <%@ Page EnableEventValidation="true" %> 啟用事件驗證。基於安全性理由,這項功能驗證回傳或回呼引數是來自原本呈現它們的伺服器控制項。如果資料為有效並且是必需的,請使用 ClientScriptManager.RegisterForEventValidation 方法註冊回傳或回呼資料,以進行驗證。

請檢查
IsPostBack 是否有使用
請檢查 Page_Load裡面在BindData的程式是不是沒有加上 if(!IsPostback)
尤其是在gridview裡面有控制項的功能時...
不需要每次都binddata,只要non postback作一次就可以了

衍生問題,若是在 IsPosBack 無法自動產生gridview 內的controls或遺失
請將controls 分成二部分產生

1.GridView1_RowCreated
自動產生控制項,gridview  的default。
2. GridView1_RowDataBound
 設定控制項內的資料連繫。