2017-11-15 4 views
0

Auf meinem asp.net Web-Seite, die ich eine große mehrzeilige Textbox, wo ich möchte der Benutzer in maximal 5 Zeilen Text nur in der Lage sein zu füllen. (Wenn der Benutzer drücken waren, während auf der 5. Zeile eingeben würde es einfach lassen Sie ihn nicht.)Begrenzen Sie die Anzahl der Zeilen in einem Multi-Line-asp.net Textbox

Der Code, den ich für das Textfeld haben:

<asp:TextBox textmode="multiline" 
      runat="server" 
      ID="TextBox1" 
      name="TextBox1" 
      style="OVERFLOW:hidden; height:165px; width:95%; resize:none;"> 

</asp:TextBox> 

habe ich versucht, es mit den Zeilen Eigenschaft und mehrere JavaScript-Funktionen, ohne Erfolg.

Ist dies möglich mit einem asp.net Textbox oder gibt es eine andere Art von Textbox ich in diesem Fall verwenden könnte?

Danke.

Antwort

0

Ich denke nicht, dass dies mit der Asp: TextBox ohne etwas zusätzliche Arbeit möglich ist. Zu guter Letzt sind die Eigenschaften "Zeilen" und "Spalten" nur eine Anzeigemetrik und beschränken nicht die Anzahl der Zeichen oder Zeilenumbrüche. Die MaxLength-Eigenschaft ist auch gut dokumentiert, um deaktiviert zu sein, wenn Sie "multiline" mit einem Asp: Textfeld verwenden.

Jedoch, haben Sie ein paar Optionen unten gezeigt. Hinweis: In der Regel wird die Eingabe anhand der Länge überprüft, da sie nicht die Feldgröße in den Datenbanktabellen überschreiten soll. Hoffentlich werden diese Beispiele helfen.

1) Bewegen Sie Ihre eigenen Validator Javascript. (dieses Beispiel beschränkt sich auf die Länge der Validierung nicht Zeilenumbrüche, aber man konnte weiter anpassen.)

<asp:TextBox textmode="multiline" 
      runat="server" 
      ID="TextBox1" 
      name="TextBox1" 
      onkeypress="return EnforceFieldLengthMax(this,10)" 
      style="OVERFLOW:hidden; height:165px; width:95%; resize:none;"> 
     </asp:TextBox> 

<script language="javascript"> 
     function EnforceFieldLengthMax(txt, maxLen) 
     { 
      if (txt.value.length > (maxLen - 1)) 
      { 
       return false; 
      } 
     } 
    </script> 

2) Regelmäßige Validator Expression (Leider wird dies nicht ausgelöst, bis die Kontrolle verliert Fokus , so glaube ich nicht, dies ist, was Sie suchen, aber hier ist ein Beispiel für alle Fälle) **

<asp:TextBox textmode="multiline" 
      runat="server" 
      ID="TextBox2" 
      name="TextBox2" 
      style="OVERFLOW:hidden; height:165px; width:95%; resize:none;"> 
     </asp:TextBox> 

<asp:Label AssociatedControlID="txtValidateMe"></asp:Label> 


<asp:RegularExpressionValidator ID="TextBox2Validator" 
           ControlToValidate="TextBox2" ErrorMessage="Entry can't exceed 20 characters" 
           ValidationExpression="^[\s\S]{0,20}$" runat="server" Display="Dynamic" SetFocusOnError="true" /> 

3) Verwenden Sie das HTML-Textarea-Objekt, das MaxLength erzwingt

<textarea maxlength="50"></textarea> 
Verwandte Themen