テキストボックスを読み取り専用に設定しました。ユーザーがそれをクリックすると、カレンダーが表示され、ユーザーは読み取り専用テキストボックスに入力する日付を選択します。
しかし、データベースにデータを入力しようとすると、null値が表示されます。なにが問題ですか?
Readonly
ASP.NETプロパティとreadonly
HTML入力要素の属性に関しては、少し奇妙な点があります。Webコントロールのプロパティを設定するのではなく、Readonly
次のようにHTML属性をコントロールに追加してみてください。
textBox.Attributes.Add("readonly", "readonly");
これにより、クライアントのブラウザでコントロールが読み取り専用になりますが、サーバーにポストバックするときに入力の値を取得できます。
システムは、読み取り専用または無効化されたコントロールがクライアント側で変更されないことを前提としているため、変更された値をサーバーにポストバックしません。サーバー側のバージョンではなく、クライアント側の読み取り専用プロパティを設定する必要があります。
ASP.NETは、WebコントロールのReadonlyおよびEnabled="false"プロパティが変更されないことを前提としています。したがって、上記のtomで述べたように値をポストバックしません。この回避策を使用できます。これをhtmlに追加すると、読み取り専用プロパティや無効化された制御について心配する必要はありません。
onkeydown="return false;"
または、ASPテキストボックスをrunat = "Server"の入力タイプテキストに置き換えてから、読み取り専用プロパティを読み取り専用として追加することもできます。リンクを確認してください
クライアント側のスクリプトを介して変更された場合にサーバー側で読み取り専用テキストボックスの値にアクセスするための回避策