<asp:TextBox ID="txtAnswer" runat="server" TextMode="MultiLine" MaxLength="200"></asp:TextBox>
我设置了最大长度为200.可是他还只是输入50个字.为什么

解决方案 »

  1.   

    1.仅当TextMode属性设置为SingleLine或Password时,MaxLength属性才适用...2.当TextBox控件处于多行模式时,可以通过设置Rows属性来控制显示的行数,默认显示两行文本框...3.多看MSDN,切勿想当然...
      

  2.   

    用这种方法试试:
    <td>    
     <asp:TextBox  id="Mark" BorderStyle="Groove" textmode="multiline" rows=5    columns="47"       runat="server"/>                                                
          <asp:RegularExpressionValidator       runat=server                  ControlToValidate="Mark"   
                              ValidationExpression="^(\s|\S){0,200}$"   //200个字
                              ErrorMessage="签名档字太多"   
                              display="dynamic"   
                              />       </td>   
      

  3.   

    设置TextMode="MultiLine"通过onblur等判断输入的字符串长度
    设置SingleLine,MaxLength才可用
      

  4.   

    看看这个,看能不能解决你的问题:
    http://www.cnblogs.com/hahaha22/archive/2009/02/02/1382625.html
      

  5.   

    最经典的实现字符数控制的方案哦!(完善版)(转) 当我们在ASP.NET开发时,经常会遇到一个头疼的问题:字符数的控制 
     由于数据库的字段长度是固定的,因此在进行字符输入时,最关键的就是控制字符的个数不能超过字段的长度,要不然,一个个异常会让人疯掉的。 
      对于单行文本框,不管是HTML控件还是Web控件,我们经常会使用MaxLength来控制,但这种控制无法控制到中文字符,即MaxLength=50的控制,可以输入50个英文与50个中文,这样的话,还是会导致中文字符数的溢出。 
      对于多行文本框,那就更惨了,使用MaxLenth根本不起作用的。 下面提供的方案优势: 
      1)最佳的方法是在文本框中输入时,控制到最大字数,超过时不能进行输入;   2)对于粘帖的情况也要能兼容,以前网上的方法不能控制到paste的情况;  3)对于最后的一个中文字符,宁愿舍去也不能多一个字符,比如50的字符数,在第49个时,最后输入一个中文,会导致最终字数为51,而这种情况,推荐是不能输入中文,保证最终的字符数<=50最佳,因为放弃一个中文字符总比数据库报错要好吧。 
     4)为了提高开发效率,尽可能的减少代码量,此方案不需要为文本框添加任何事件,而是由脚本块自己解决,因此只需要把脚本块饮包含到页面中就可以了,这应该是相当方便了吧  
      
    完善版修改:由于前一个方案中,一些输入法无法激活onpress事件,导致对于中文的不支持,现在采用onkeyup事件处理,在处理方式上也进行了修改,原来的onpress事件是进行输入控制,而onkeyup只能对已经输入后的字数进行字数判断,过长的进行截短处理。   在原方案中,有位朋友指出:数据采用n(type)系统不会报错,是的,如果采用n(type)的话,是以字符为基础的,可以不考虑数据库出错的可能性,但同样也存在一个界面显示的问题,比如界面上的Address值,希望是100个字符,如果不进行中英文字数区分,最多将输入100个中文,从而占200个字节空间,导致Adress在显示时会超过预料的空间,界面搞得不易控制。因此,此方案还是有可取之处的。 
    具体新方案实现: 
     1)将以下的代码包含到页面中:<script language="javascript">  
    <!--  
     
    String.prototype.len=function(){  
    return this.replace(/[^\x00-\xff]/g,"**").length;  
    }  
     
    //Set maxlength for multiline TextBox  
    function setMaxLength(object,length)  

         
        var result = true;  
        var controlid = document.selection.createRange().parentElement().id;  
        var controlValue = document.selection.createRange().text;  
        var tempString=object.value; 
         
        var tt="";  
        for(var i=0;i<length;i++)  
            {  
                if(tt.len()<length)  
                    tt=tempString.substr(0,i+1);  
                else  
                    break;  
            }  
        if(tt.len()>length) 
            tt=tt.substr(0,tt.length-1); 
        object.value=tt; 
         
         
    }  
     
    //Check maxlength for multiline TextBox when paste  
    function limitPaste(object,length)  
    {  
            var tempLength = 0;  
            if(document.selection)  
            {  
                if(document.selection.createRange().parentElement().id == object.id)  
                {  
                    tempLength = document.selection.createRange().text.len();  
                }  
            }  
            var tempValue = window.clipboardData.getData("Text");  
            tempLength = object.value.len() + tempValue.len() - tempLength;  
     
            if (tempLength > length)  
            {  
                tempLength -= length;  
                var tt="";  
                for(var i=0;i<tempValue.len()-tempLength;i++)  
                    {  
                        if(tt.len()<(tempValue.len()-tempLength))  
                            tt=tempValue.substr(0,i+1);  
                        else  
                            break;  
                    }  
                if(tt.len()<=0) 
                {     
                    window.event.returnValue=false; 
                     
                } 
                else 
                { 
                    tempValue=tt;  
                    window.clipboardData.setData("Text", tempValue);  
                    window.event.returnValue = true;  
                } 
            }  
         
     
    }  
     
    function PressLength() 

         
        if(event.srcElement.type=="text" || event.srcElement.type=="textarea" ) 
        { 
            if(event.srcElement.length!=null) 
                setMaxLength(event.srcElement,event.srcElement.length); 
             
        } 

     
    function LimitLength() 

     
        if(event.srcElement.type=="text" || event.srcElement.type=="textarea" ) 
        { 
            if(event.srcElement.length!=null) 
                limitPaste(event.srcElement,event.srcElement.length); 
        } 

    document.documentElement.attachEvent('onkeyup', PressLength);  
    document.documentElement.attachEvent('onpaste', LimitLength); 
     
    //-->  
            </script>  2)在需要控制的控件上添加length="n"(n为要控制的字数)即可,如: 
      <INPUT  type="text" length="3"> <TEXTAREA length="20"  rows="2" cols="20"></TEXTAREA> <asp:TextBox id="TextBox1"  runat="server" length="7"></asp:TextBox> <asp:TextBox id="TextBox2" runat="server" TextMode="MultiLine" length="10"></asp:TextBox> 上面是HTML控件与Web控件的例子,只要加一个length就可以了。