これはasp:TextBoxで余分な作業をしなくても可能ではないと思います。 FYIでは、「行」と「列」プロパティは表示メトリックであり、文字数やキャリッジリターンを制限しません。 MaxLengthプロパティは、asp:Textboxで "multiline"を使用すると無効になることもよく文書化されています。
のように、いくつかのオプションがあります。注:通常、入力はデータベーステーブルのフィールドサイズを超えないように長さで検証されます。うまくいけば、これらの例が役に立ちます。
1)独自のJavascriptバリデータをロールバックします。 (この例では、長さではなく、キャリッジリターンを有効に制限されていますが、さらにカスタマイズすることができます。)
<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)正規表現のバリデータ コントロールがフォーカスを失うまで(残念ながら、これは発生しませんので、私はのMaxLength強制しないHTMLのTextAreaオブジェクトを使用します)**
<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)この1つはあなたが探しているものだと思いますが、ここで念の例ではありません
<textarea maxlength="50"></textarea>