我只打算寫CustomValidator與ValidationSummary,
因為我每次都忘記怎麼設定=_=
首先看一下預期的結果
有一個TextBox,當按下按鈕後判斷是不是A,如果不是則提示訊息告知Client端。
[畫面]
分別拉出TextBox、Button、CustomValidator、ValidationSummary。
屬性設定如下
Button
ValidationGroup = "GroupA"
CustomValidator
ErrorMessage="你輸入的不是A"
ClientValidationFunction="CheckData"
ControlToValidate="txtInput"
ValidationGroup="GroupA"
Display="None"
ValidationSummary
ShowMessageBox="True"
ValidationGroup="GroupA"
DisplayMode="List"
ShowSummary="False"
因為CustomValidator使用了自訂的JavaScript
所以再aspx的頁面上寫入一小段的Javascript如下
<script> function CheckData(source, args) { if(document.getElementById('txtInput').value == 'A') { args.IsValid = true; } else { args.IsValid = false; } } </script> |
這樣就完成自訂控制項的檢查囉。
當然,也有辦法重複利用function的處理方式與自訂錯誤訊息的處理方式
可透過參數二呃Value屬性取出CustomValidator指定的控制項值
並透過document.getElementById("CustomValidator1").errormessage的方式設定新的錯誤訊息。
參考下述程式碼。
<script> function CheckData(source, args) { if(args.Value == 'A') { args.IsValid = true; } else { source.errormessage = '你輸入的竟然是' + args.Value; args.IsValid = false; } } </script> |