7

1つのASPWebアプリケーションを作成しました。そのアプリケーションでは、1つのフォームでテキストボックスフィールドの日付値を更新する必要があります。そのテキストボックスの近くにカレンダーボタンを配置します。そのテキストボックスフィールドの日付を更新できますが、編集可能です。カレンダーボタンのみを使用して日付値を更新したいのですが、読み取り専用プロパティを使用しましたが、空の値を返すため、機能しません。

4

6 に答える 6

12

readonlyASP.NETサーバー側ではなくクライアント側のhtml属性を試してくださいreadonly

myTextBox.Attributes.Add("readonly", "readonly");

MSDNから、

ReadOnlyプロパティがtrueに設定されたTextBoxコントロールのText値は、ポストバックが発生したときにサーバーに送信されますが、サーバーは読み取り専用テキストボックスの処理を行いません。これにより、悪意のあるユーザーが読み取り専用のテキスト値を変更するのを防ぎます。Textプロパティの値は、サーバー側のコードで変更されない限り、ポストバック間のビューステートで保持されます。

これが、サーバー側readonly属性を持つテキストボックスがポストバックでnull値を持つ理由です。

于 2012-07-02T08:48:32.943 に答える
5

TextBox1.Enabled = false;またはのいずれかを使用できます

TextBox1.Attributes.Add("readonly","readonly");

違いは、作成した場合enabled= false、の値を渡すことができないことですtextbox。の値を渡す必要がある場合は、のtextbox読み取り専用プロパティを使用する必要がありますtextbox

于 2012-07-02T11:00:34.427 に答える
1

コードビハインドファイルのページ読み込みイベントで、次のコードを記述します。

yourTextBoxName.Attributes.Add("readonly","readonly");

プロパティを使用して同じことを行うこともできます

Enabled="false"

aspxページでは、コードビハインドページでその値にアクセスできなくなります。

于 2012-07-02T09:54:27.783 に答える
1

asp.netでtextBoxを編集不可にすることができます

于 2012-07-02T12:50:32.560 に答える
0

あなたはこれを使いたいかもしれません:

TextBox1.Enabled = false;
于 2012-07-02T08:48:42.587 に答える
0

読み取り専用を使用すると、ポストバックで問題が発生します。このJavaスクリプトプロパティを設定するだけです。

onkeydown="javascript:return false"

これを使用することにより、uは読み取り専用のようなプロパティを持つことができ、まったく問題は発生しません

于 2013-09-05T04:55:49.073 に答える