1つのASPWebアプリケーションを作成しました。そのアプリケーションでは、1つのフォームでテキストボックスフィールドの日付値を更新する必要があります。そのテキストボックスの近くにカレンダーボタンを配置します。そのテキストボックスフィールドの日付を更新できますが、編集可能です。カレンダーボタンのみを使用して日付値を更新したいのですが、読み取り専用プロパティを使用しましたが、空の値を返すため、機能しません。
6 に答える
readonly
ASP.NETサーバー側ではなくクライアント側のhtml属性を試してくださいreadonly
。
myTextBox.Attributes.Add("readonly", "readonly");
MSDNから、
ReadOnlyプロパティがtrueに設定されたTextBoxコントロールのText値は、ポストバックが発生したときにサーバーに送信されますが、サーバーは読み取り専用テキストボックスの処理を行いません。これにより、悪意のあるユーザーが読み取り専用のテキスト値を変更するのを防ぎます。Textプロパティの値は、サーバー側のコードで変更されない限り、ポストバック間のビューステートで保持されます。
これが、サーバー側readonly
属性を持つテキストボックスがポストバックでnull値を持つ理由です。
TextBox1.Enabled = false;
またはのいずれかを使用できます
TextBox1.Attributes.Add("readonly","readonly");
違いは、作成した場合enabled= false
、の値を渡すことができないことですtextbox
。の値を渡す必要がある場合は、のtextbox
読み取り専用プロパティを使用する必要がありますtextbox
。
コードビハインドファイルのページ読み込みイベントで、次のコードを記述します。
yourTextBoxName.Attributes.Add("readonly","readonly");
プロパティを使用して同じことを行うこともできます
Enabled="false"
aspxページでは、コードビハインドページでその値にアクセスできなくなります。
asp.netでtextBoxを編集不可にすることができます
あなたはこれを使いたいかもしれません:
TextBox1.Enabled = false;
読み取り専用を使用すると、ポストバックで問題が発生します。このJavaスクリプトプロパティを設定するだけです。
onkeydown="javascript:return false"
これを使用することにより、uは読み取り専用のようなプロパティを持つことができ、まったく問題は発生しません