- PR -

[ASP.NET]TextBoxのReadOnly

1
投稿者投稿内容
にし
会議室デビュー日: 2004/04/09
投稿数: 4
投稿日時: 2005-08-01 21:28
現在ASP.NET+VB.NETでの開発をやっていまして、VB.NET側で
条件に応じてTextBoxの入力制限をReadOnlyのプロパティで
制御しようとしています。

ASP.NETのデザイン画面ではReadOnlyのプロパティを設定できるのですが、
VB.NETのコードではどのように記述すればReadOnlyの制御ができるのでしょうか?

.NET初心者ですみません。
どうかよろしくお願いします。
NAL-6295
ぬし
会議室デビュー日: 2003/01/26
投稿数: 966
お住まい・勤務地: 東京
投稿日時: 2005-08-01 21:49
普通に

TextBoxObject.ReadOnly = true
とか
TextBoxObject.ReadOnly = false
とかすれば良いのでは?
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2005-08-01 21:55
引用:

ASP.NETのデザイン画面ではReadOnlyのプロパティを設定できるのですが、
VB.NETのコードではどのように記述すればReadOnlyの制御ができるのでしょうか?


TextBox1.ReadOnly = True と書く。
その後 PostBack は必要。



_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
にし
会議室デビュー日: 2004/04/09
投稿数: 4
投稿日時: 2005-08-01 22:06
先ほど確認しましたところ
 <asp:TextBox id="XXX" runat="server"></asp:TextBox>
で作られた
 System.Web.UI.WebControls.TextBox
だとおっしゃった通り ReadOnly は使えるようです。

それが
 <input type="text" id="XXX" runat="server">
で作られた
 System.Web.UI.HtmlControls.HtmlInputText
だとないみたいなのです。


現在HTMLを作成してからそれをASPに変換するやり方
(拡張子を.aspxに変更して、項目にrunat="server"を追加)
でやってまして、<asp:TextBox>でなく<input type="text">
の方でやってました。


これは
 <asp:TextBox id="XXX" runat="server"></asp:TextBox>
で作られた
 System.Web.UI.WebControls.TextBox
でないと ReadOnly は制御できないという事でしょうか?

また、通常は<input type="text" runat="server">ではなく
<asp:TextBox runat="server"></asp:TextBox>の方を使うべき
という事でしょうか?
NAL-6295
ぬし
会議室デビュー日: 2003/01/26
投稿数: 966
お住まい・勤務地: 東京
投稿日時: 2005-08-01 22:22
1.TextBoxでReadOnlyをTrueにした時に、はき出されるHTMLの内容を見る。
2.すると、ReadOnlyがfalseの時にはなかった、属性がある。
3.TextのAttributesにその属性を追加する。

以上で、TextをReadOnlyにできます。

が、不都合が無いならTextBoxを利用した方が楽でしょうね。
_________________
「伝える」とは「人に云う」と書く。
http://d.hatena.ne.jp/NAL-6295/
にし
会議室デビュー日: 2004/04/09
投稿数: 4
投稿日時: 2005-08-02 08:58
返事遅れてすみません。

プロパティで設定すると
 <input type="text" readOnly>
  ^^^^^^^^
という属性は入っていたのですが、
それをどう設定していいかが分かりませんでした。

で、教えていただいたAttributesを使って、
 XXXX.Attributes.Add("readonly", "true")
という記述でReadOnlyに設定できました。

なるほど、Attributesを使えばいろいろ設定
できるんですね。。。

詳しい説明ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)