C#

パスワード・テキストボックスに値を設定する方法

TextBox.TextModeがTextBoxMode.Passwordのときはサーバ側でTextプロパティを設定してもクライアントのブラウザには何も表示されませんし、ポストバックでもTextプロパティには何も入っていません。正しく値を設定するにはTextBox.Attributesコレクションに"value"を追加します。

    TextBox1.Attributes["value"] = TextBox1.Text;

※指定されたキーがない場合、AttributeCollectionは自動的にコレクションにアイテムを追加します。

こうすることによってクライアントで値を表示し、ポストバックでも正しく受け取ることができます。ここではサーバからパスワードを送信するという行為の是非は議論しません。

この場合のTextBoxはクライアントには<INPUT>タグとして送信されます。Attributesコレクションは例えば<INPUT TYPE="text">といった場合のTYPEのような属性のコレクションです。TextBox.Textを指定しても無駄なら、Attributesコレクションに目的のvalue属性を直接追加してしまおうというものです。