C# Server.htmlencode和带有MaxSize的文本框
我在页面上有一个文本区域输入。此文本框是多行的,最大大小为500个字符。我正在使用.NET4.0C# Server.htmlencode和带有MaxSize的文本框,c#,asp.net,vb.net,encoding,C#,Asp.net,Vb.net,Encoding,我在页面上有一个文本区域输入。此文本框是多行的,最大大小为500个字符。我正在使用.NET4.0 <asp:TextBox ID="TxtOther" Width="530px" TextMode="MultiLine" Style="word-wrap: break-word;height: 300px; overflow: auto; vertical-align: top" runat="server" AutoComplete="off" MaxLength="500" />
<asp:TextBox ID="TxtOther" Width="530px" TextMode="MultiLine" Style="word-wrap: break-word;height: 300px; overflow: auto; vertical-align: top" runat="server" AutoComplete="off" MaxLength="500" />
这种情况是这样的(例如):用户可以在文本区域中输入499个字符,其中包括一个“,当您有MaxLenght=“500”时,在服务器上进行验证-在客户端提交用户输入后。server.HtmlEncode也会在服务器上执行
如果创建客户端自定义验证器,则可以将输入限制在500个字符以下,并消除第500个字符为“”的编码问题
它还可以节省往返服务器的时间
在网页上,您需要添加自定义验证程序:
<asp:CustomValidator ID="CustValid500" runat="server"
ControlToValidate ="TxtOther"
ErrorMessage ="500 or more characters are not allowed"
ClientValidationFunction = "ValidateLength" >
</asp:CustomValidator>
还有一点javascript:
<script type ="text/javascript">
function validateLength(oSrc, args)
{ args.IsValid = (args.Value.length < 500); }
</script>
函数validateLength(oSrc、args)
{args.IsValid=(args.Value.length<500);}
我已经有了一个javascript来处理/处理长度问题。因此,我完全排除了maxlength问题,但它仍然存在。因此,我想做的是允许用户输入或复制/粘贴。问题是如果他们输入499个字符;如果他们保存服务器端,将执行server.htmlencoding。结果超过500个字符,只需要500个字符(截断其余字符),但我不想允许整个复制/粘贴,如果它进行编码,将导致>500。我该怎么做?我拥有的与您拥有的接近,尽管没有长度验证器。我有一个javascript而不是CustomerValidator(本质上是服务器端,而不是客户端)我拥有的是客户端。但是客户端上的编码部分与服务器端的功能相匹配。我能做些什么呢,还是只能留在服务器端?