asp.net C#中怎样控制输入字符的长度
比如我设置了,一个文本框的输入字符的最大长度为50,我mssql数据库中设置的字符最大长度varchar(50)可是当我输入字符是50时候不会报错,可是我输入汉字50个,或是汉字和英文字符共50个就会报错.我应该怎么办? 

解决方案 »

  1.   

    <script language='javascript'>
    function cutstr(str,len)
    {
       
    var str_length=0;
    var str_len=0;
    var str_cut=new String();
    str_len=str.length;
    for (var i=0;i<str_len;i++)
    {
      a=str.charAt(i);
      str_length++;
      if (escape(a).length>4)
      {
        str_length++;
      }
      if(str_length>len)
      {
        return str_cut;
        
      }
      str_cut=str_cut.concat(a);
      
    }
    return str_cut;

    }function cutstrs(str,len,id)
    {
      var s=cutstr(str,len)
      if (str!=s) {
      document.getElementById(id).value=s;  }
      }</script>
    <asp:textbox id="tbNo" runat="server" Width="200px" onkeyup="cutstrs(this.value,50,this.id)"
    onpaste="cutstrs(this.value,50,this.id)"></asp:textbox>
      

  2.   

    用JS控制
    function ByteWordCount(txt) {            
               txt = txt.replace(/([\u0391-\uFFE5])/ig,'11');
               var count = txt.length;
               return count;
    }
      

  3.   

     <input id="Text1" maxlength="50" type="text" />有这个属性
      

  4.   

    重新看了一下问题,
    数据库中  类型改用为 nvarchar