我已经为ASP.Net中的多行文本框创建了一个自定义验证器,用于最大字符.
下面是我正在使用的代码.
<asp:CustomValidator ID="cvPersonality" runat="server" ControlToValidate="txtPersonality"
Display="Dynamic" ErrorMessage="*Maximum Characters 200"
OnServerValidate="cvPersonality_ServerValidate"></asp:CustomValidator>
Protected Sub cvPersonality_ServerValidate(ByVal source As Object, ByVal args As System.Web.UI.WebControls.ServerValidateEventArgs)
Dim strDesc As String = Me.txtPersonality.Text
If Len(strDesc) > 200 Then
args.IsValid = False
Else
args.IsValid = True
End If
End Sub
Run Code Online (Sandbox Code Playgroud)
谢谢
Rem*_*tec 28
请记住在CustomValidator上设置此属性...
ValidateEmptyText="True"
Run Code Online (Sandbox Code Playgroud)
您可以使用以下代码进行客户端验证,作为服务器端验证的补充.客户端验证在一些简单的情况下(例如最大文本长度)很有用,因为它减少了服务器开销,没有冗余的回发只是为了简单的检查.示例代码:
<script type="text/javascript">
function clientValidate(sender, args) {
if (args.Value.length > 200) {
args.IsValid = false;
}
}
</script>
<div>
<asp:TextBox runat="server" ID="TextBox1" TextMode="MultiLine"></asp:TextBox>
<asp:CustomValidator runat="server" ID="CustomValidator1" ControlToValidate="TextBox1"
Text="The text length exceeds the allowed maximum"
ClientValidationFunction="clientValidate" Display="Dynamic">
</asp:CustomValidator>
<asp:RequiredFieldValidator runat="server" ID="ReqFieldValidator1" ControlToValidate="TextBox1"
Text="You must enter a text!" Display="Dynamic">
</asp:RequiredFieldValidator>
<asp:Button runat="server" ID="Button1" Text="Postback" CausesValidation="true" />
</div>
Run Code Online (Sandbox Code Playgroud)
请注意RequiredFieldValidator,这是为了确保文本框中输入了文本.出于某种原因,当args.Value.length == 0时,CustomValidator不会捕获;