パソコン関連の書籍等を読んで試したりしながらアウトプットしまくります。

アウトプットしながら学ぶ

ASP.net プログラミング

ASP.net TextBoxのRowsプロパティの使い方 行数制限の代替案

投稿日:

ASP.net TextBoxのRowsプロパティに関するメモです。

例えば次のコードを書いた場合、初期表示で行数が5行になります。

勘違いしがちですが、「Rows="5"」は行数の制限をするものではありません。

TextBoxのTextModeをMultiLineすると、実際に出力されるHTMLはtextarea です。
textarea には行数を制限するような属性は存在しないので、MaxRowsといったプロパティはありません。
したがって、行数を制限することはできません。

なので、行数の制限をしたい場合は、何らかのイベントの処理をするときに行うしかありません。
ポストバックが発生するタイミングで行うことになるので、ボタンを押したときなどに、Textboxの文字列が何行あるか取得して、行数オーバーを検知するというのが一番単純です。

入力フィールドが複数ある場合は、TextBoxのTextChangeプロパティを使えばよいです。
この場合は、AutoPostBackプロパティをTrueにしておけば、TextBoxからフォーカスが移動したときに、ポストバックが行われて、行数チェックをしてメッセージを出すことができるので、ポストバックのタイミングのズレを小さくすることも可能です。

ASP.net TextBoxの行数制限の代替案としては、想定する1行あたりの文字数から計算して文字数制限をしてしまうという方法も考えられます。

ASP.net TextBoxの行数制限の代替案
想定する1行あたりの文字数から計算して文字数制限をする

1行あたり10文字で8行なら、MaxLength="80"としてしまうということです。







-ASP.net, プログラミング

Copyright© アウトプットしながら学ぶ , 2024 AllRights Reserved Powered by AFFINGER4.