我碰到的原因很簡單,CustomValidator 預設是不會驗證 TextBox.Text 為空的情況,必須要設 ValidateEmptyText = true 它才會吃到。
ref: SO
今天又碰到另一個 CASE,不過這次是我自己寫的有問題。
validator 放在一個 ListView 裡面,每列都有,當 post back 有觸發 OnServerValidate 的事件,且 args.IsValid 條件設定也正確,甚至我在 postback 的按鈕看 Page.IsVaild 的值都是對的...
原因是基於別的業務邏輯流程,我的 ListView Datasource 指派跟 Rebind 是在 Page_LoadComplete,而我沒有判斷,每次 postback 都會重新 assign 跟 rebind ListView 所以 validator 的狀態就這麼被洗掉了... 瞎忙了一個下午。
沒有留言:
張貼留言