トップ回答者
Textboxのパスワードモードについて

質問
-
ログオン画面にTextboxが2つあります。
一つはユーザー名を入力するTextboxでTextModeはsinglelineです。
もう一つはパスワードを入力するTextboxでTextModeはPasswordです。
Cookieを読み取り、TextboxID.text="ユーザー名" と TextboxPassWord.text="パスワード"とするとユーザー名は表示されますが、Passwordを表示されません。
Modeをsinglelineに変更すると表示されますので、ModeがPasswordにしているのが原因と思われます。
ModeがPasswordのTextboxにTextbox.text="パスワード"でTextboxに●●●●と表示させる事はできないのでしょうか?
度々の質問で申し訳御座いませんがよろしくお願い致します。
回答
-
>singlemodeではTEXT="ユーザーID"で表示されるのに、passwordmodeでは表示されないのでしょうか?
これは仕様だと思います。実は私もうっかりしていたのですが、
TextBox1.Attributes("Value") = "パスワード"
として、パスワードを●●●と表示したとしても、Value属性には、しっかり生のパスワードが記述されていますので、そのWebページのHTMLソース上では、パスワードが丸見えになっています。
なので、TextModeがpasswordの場合には、Value属性に何もセットしないようになっているのでしょう。これが私が冒頭で述べた仕様だと思うの理由です。>singlemodeでもTextBox1.Attributes("Value") = "ユーザーID"と記述した方が良いのでしょうか。
WebサーバーコントロールのTextBoxは、ブラウザに送信される時にHTMLのテキストボックスに変換されます。このHTMLのテキストボックスに値をセットするのがValue属性になります。
このようにWebサーバーコントロールは、最終的にはHTMLの世界になりますので、そのことに注意して下さい。ですから、TextBox1.Text = "hoge"も、最終的には、Value属性に値をセットした形でHTMLに変換されますので、TextBox1.Attributes("Value") = "hoge"の結果と同じになります。
Attributesを使うのは、Webサーバーコントロールでサポートされていない属性を、HTMLのコードを直接イメージして指定する場合ですので、Textプロパティがあるのであれば、わざわざAttributes("Value")を使う理由はないでしょう。
すべての返信
-
trapemiya様
Attributesを始めて知りました。ASP.NET初心者ですので申し訳ありません。
WebControl.AttributesについてMSDNで調べる
「Attributesコレクションには、Web サーバー コントロールの開始タグで宣言されたすべての属性のコレクションが格納されます。これによって、Web サーバー コントロールに関連付けられた属性をプログラムで制御できます。コレクションに属性を追加したり、コレクションから属性を削除したりできます。」 とありました。
singlemodeではTEXT="ユーザーID"で表示されるのに、passwordmodeでは表示されないのでしょうか?
singlemodeでもTextBox1.Attributes("Value") = "ユーザーID"と記述した方が良いのでしょうか。
自分なりに調べてみますが、ご回答頂けると幸いです。
-
>singlemodeではTEXT="ユーザーID"で表示されるのに、passwordmodeでは表示されないのでしょうか?
これは仕様だと思います。実は私もうっかりしていたのですが、
TextBox1.Attributes("Value") = "パスワード"
として、パスワードを●●●と表示したとしても、Value属性には、しっかり生のパスワードが記述されていますので、そのWebページのHTMLソース上では、パスワードが丸見えになっています。
なので、TextModeがpasswordの場合には、Value属性に何もセットしないようになっているのでしょう。これが私が冒頭で述べた仕様だと思うの理由です。>singlemodeでもTextBox1.Attributes("Value") = "ユーザーID"と記述した方が良いのでしょうか。
WebサーバーコントロールのTextBoxは、ブラウザに送信される時にHTMLのテキストボックスに変換されます。このHTMLのテキストボックスに値をセットするのがValue属性になります。
このようにWebサーバーコントロールは、最終的にはHTMLの世界になりますので、そのことに注意して下さい。ですから、TextBox1.Text = "hoge"も、最終的には、Value属性に値をセットした形でHTMLに変換されますので、TextBox1.Attributes("Value") = "hoge"の結果と同じになります。
Attributesを使うのは、Webサーバーコントロールでサポートされていない属性を、HTMLのコードを直接イメージして指定する場合ですので、Textプロパティがあるのであれば、わざわざAttributes("Value")を使う理由はないでしょう。