一个TextBox,MaxLengh设为10,那么英文能输入10个,中文也能输入10个,但是长度限定只能是10,这个问题该怎么解决呢?

解决方案 »

  1.   

    加个js控制,在form检验时,看txt1.Text.length 如果!=10 ,alert ,return false
      

  2.   

    string.length得出的长度10个英文字长度是10,10个中文字长度也是10
      

  3.   

    TextBox 的TextMode如果是MultiLine的话 MaxLengh是没有作用的....
      

  4.   

    所以用js来控制文本的长度...
    <script language="javascript">

    function checkTextLength(obj,length)
            {
              if(obj == null)
              {
                    window.alert("脚本错误,参数不正确");
                    //用法:<asp:textbox onkeypress="checkTextLength(this,30);" onblur="checkTextLength(this,30);" TextMode="MultiLine">
              }
              else
              {
                    if(obj.value.length>length-1)
                    {
                        if(event.keyCode==0)
                            window.alert("请确保文本框输入的内容最大长度为"+length+"个字符,超出部分将自动截断");
                        obj.value = obj.value.substring(0,length-1);
                    }
              }      
            }
    </script>
      

  5.   

    to: baobei7758(陵少) 
      我的TextBox是单行的,MaxLengh设为15,数据库中规定的长度也为15
      当在TextBox输入10个英文,obj.value.length=10
      当在Textbox输入10个中文,相当于20个英文字符,这时obj.value.length还是等于10,提交时就会出错
      

  6.   

    你在页面加上看看:
    <%
    Response.Buffer=true;
    Response.ExpiresAbsolute=DateTime.Now.AddSeconds(-1);
    Response.Expires=0;
    Response.CacheControl="no-cache";
    %>