2009-05-02 14 views
0

テキストボックスがあります。そのonclick iamは、calendar.Texboxを呼び出すためのjavascript fnを呼び出して読み取り専用です。テキストボックスカレンダーをクリックすると、値がテキストボックスに表示されます。しかし、保存するためのコードを書いたボタンをクリックすると、テキストボックスに値が表示されません。その理由は何でしょうか?読み取り専用のテキストボックスで値を取得する方法

答えて

8

テキストボックスの値がreadonlyではなくdisabledで、サーバーに値を送信できないと思われます。

+0

非常に良いキャッチを使用して値を取得することができます! +1 – Cerebrus

+0

ダーリンは、すべての一般的なブラウザでのみサポートされていますか?この属性については知らなかった。 – nickytonline

+1

これは動作しませんが、デザイナーモードではなく読み込み時のコードビハインドで読み取り専用プロパティーを設定しないところでの提案は何ですか。 –

1

人は、日付を入力するためにカレンダーコントロールを使用する必要があるように、テキストボックスが無効になっていると思いますか?テキストボックスは、選択した日付を表示するためのものですか?

テキストボックスを読み取り専用(クライアント側が無効)にしたい場合は、サーバー上で処理したい値が隠された入力を持っている可能性があります。したがって、ページへの追加入力を追加します。使用する

<asp:HiddenField ... runat="server" /> 

したがって、読み取り専用のテキストボックスを更新するクライアント側のコードは、非表示の入力も更新します。

0

readonlyプロパティがtrueの場合は、.csコールが中断されません。あなたはいつものようにこれを使用することができますがあり、私もこの問題を抱え

lblBraid.Text = txtBraid.Text; 
5

:onClickの機能や何かにこれらを入れては.csページの

<asp:TextBox ID="txtBraid" runat="server" Text="Im sooo readonly" ReadOnly="True"></asp:TextBox> 
<asp:Label ID="lblBraid" runat="server" Text="Im gonna change, i promise"></asp:Label> 

:ここ

があなたの入力です本当に簡単な回避策

プロパティオプションを使用してReadOnlyテキストボックスを作成する代わりに。このコードを追加することの背後にあるコードを通してそれを実行します。

YourTextBox.Attributes.Add("readonly", "readonly"); 
+0

完璧に働いた、ありがとう。 –

2

あなたは

Request.Form[YourTextBox.UniqueID] 
+0

これは顕著な答えでなければなりません。ありがとう! –