- - PR -
コントロール名を配列にしたい・・・
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2002-10-22 20:45
お疲れさまです。elmoです。
みなさんに教えて欲しいことがあります! 例えば、 texttest1 texttest2 ・ ・ ・ texttest10 のような名前のテキストボックスが10個あります。 これらのコントロールに値を設定するとき、 for文でまわしたいのですがどうしたらいいのでしょうか? 今それができずに個々に値を設定しているのですが、大変面倒でやってられないです〜 テキストボックスの名前を配列にしようとしてみたのですが、同じ名前は駄目とはじかれてしまいました。 何かいいほうがあるはずだと思うのですが・・・。 よろしくお願いします〜。 | ||||||||
|
投稿日時: 2002-10-23 08:13
面倒ですが、 dim cntrlArr(n) as arraylist cntrlArr(0) = texttest1 cntrlArr(1) = texttest2 ・ ・ ・ と、どこかでしています。 その他、Control::Controlsをぐるぐる回してみる、という方法も使っています。 | ||||||||
|
投稿日時: 2002-10-23 09:23
VB.NETになってから、コレクション変数が新しくできました。コレクション変数を使えば、簡単に、ループ文で回すことが出来ます。
Dim Txtcol As New Collection() Txtcol.Add(texttest1) Txtcol.Add(texttest2) Txtcol.Add(texttest3) for I=1 to 3 Txtcol(I).Visible = false next コレクション変数の中には、オブジェクトごと格納が可能で、コレクションそれぞれの中に格納されているオブジェクトのプロパティ・メソッドを使用可能になっています。ただし、インテリセンスにはもちろんならないですが(苦笑) _________________ -------------------------------------- ネットビルド 小田原貴樹 odahara@netbuiuld.jp -------------------------------------- | ||||||||
|
投稿日時: 2002-10-23 09:24
こんな感じではどうでしょう。 | ||||||||
|
投稿日時: 2002-10-23 11:56
すみません、便乗させていただいて申し訳ないのですが、
私も入力チェックで同じようなことをやろうと思っています。 そこで、ぴでさんのコードを実行してみたのですが、 x:\xxx\xxx\xxx.aspx.cs(xxx): 'System.Web.UI.Control' に 'Text' の定義がありません。 とエラーが出てしまいました。(xの羅列は伏字です) System.Web.UI.ControlからSystem.Web.UI.WebControlsへの型変換はできないのでしょうか…? | ||||||||
|
投稿日時: 2002-10-23 13:25
コードを見ないと何ともいえませんが、()の位置がずれてたり足りなかったりしませんか? | ||||||||
|
投稿日時: 2002-10-23 15:50
すみません…(恥)
((TextBox)Page.FindControl("texttest" + i)).Text = "設定値"; を、 (TextBox)(Page.FindControl("texttest" + i)).Text = "設定値"; としていました。単純なミスですね。お恥ずかしい…。 お騒がせいたしました。DaikiRyutoさん、ありがとうございました。 ぴでさんにもご迷惑おかけしました。すみませんでした。 [ メッセージ編集済み 編集者: 啓 編集日時 2002-10-23 15:51 ] | ||||||||
|
投稿日時: 2002-10-28 14:45
elmoです。
遅くなりましたが、解決いたしました。 私はコレクションオブジェクトを使うことにしました。 FindControlはオブジェクトを検索しにいくってかいてあったので、処理的にどうなんだろうな〜と思い、私はこちらにしました。 (検証してないのでなんともいえませんが)。 ありがとうございました! |
1