- - PR -
【ASP.NET】Page上のサーバコントロール一覧...
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2003-12-19 13:53
遥@初心者 修行中です。いつも参考にさせて頂いています。
現在、Webアプリを製造開発しています。 またまた壁にぶち当たりました。(T_T) 過去ログをあたってみましたが、どうもわかりません。 ご指南頂けませんでしょうか? 参照のみの場合、編集の場合とで、テキスト等のサーバコントロール の属性(ReadOnly、BorderStyle、BackColorプロパティ)を変えたいと 思っています。 各ページで同様な処理を行うので、この処理を共通化し、クラス化 したいと思います。 参照のみの場合で、そのページのサーバコントロールがテキスト だったらReadOnly=Trueに、それ以外のコントロールだったら何も 処理しないということがやりたいのですが、具体的に そのページのサーバコントロールをどのように引数として渡して やればよいかわかりません。 参考程度になる情報でも結構ですので、宜しくお願いします。 | ||||
|
投稿日時: 2003-12-19 14:09
こんにちは
こんなやり方はいかがでしょうか。 共通メソッドにWebページのインスタンスを渡す メソッドの中ではControlsを再帰的に走査しテキストボックスだったら コントロールのプロパティを変更する 以下のような感じ 呼び出すときはページを引数に渡す #最近はVB.NET場借家っていますのでVB.NETです。
#失礼かぶったっぽい [ メッセージ編集済み 編集者: FOX 編集日時 2003-12-19 14:11 ] | ||||
|
投稿日時: 2003-12-19 14:09
単純に取得したいだけであれば、下記のようなメソッドを書いて、Parentにページオブジェクトをtypeに取得したいコントロールの型を渡すと、戻り値に取得したいコントロールの配列が入るので、それに対して処理してあげるといいと思います。
#同じくかぶってました。失礼。 [ メッセージ編集済み 編集者: NAL-6295 編集日時 2003-12-19 14:17 ] | ||||
|
投稿日時: 2003-12-19 15:04
遥です。うん、どうもうまくいきません。(TT)
Pageインスタンスを渡すとは、 Dim obCommon as New ClassA ※CalssA;クラス名 obCommon.共通メソッド名(Page) じゃ、だめなんでしょうか? 恥ずかしいのはやまやまですがご教授ください。 | ||||
|
投稿日時: 2003-12-19 15:20
該当ページの中で処理するのであれば、
objCommon.共通メソッド名(Me(自分自身)) でいいですね。 該当ページの外で処理するのであれば(あるのか?)、 objCommon.共通メソッド名(該当ページクラスのインスタンス) となります。 | ||||
|
投稿日時: 2003-12-19 16:04
だめでした。なぜに〜。
処理ははしるのですが、For Each child In target.Controls() のループが3回しかまわりません。 ページに含まれるサーバコントロールは50個はあるのですが。。。 なんでだろう ■呼ぶ側■ Pageクラス、Page_Loadの中に記述。 Dim obCommon as New ClassA obCommon.sample(me) ■共通クラス■ Public Class A Public Sub sample(ByVal target As Control) If target.HasControls() Then Dim child As Control For Each child In target.Controls() If TypeOf child Is TextBox Then Dim text As TextBox = child text.ReadOnly = True End If Next End If End Sub End Class [ メッセージ編集済み 編集者: haruka 編集日時 2003-12-19 16:10 ] | ||||
|
投稿日時: 2003-12-19 16:47
こんにちは
すいません私の例が間違っています。 再帰といいながら再起では有りませんでした。 修正版は以下のとおり
皆さんご迷惑をおかけしました。m(_o_)m | ||||
|
投稿日時: 2003-12-19 17:23
遥です。
ついにやりました。できました。綺麗な?コーディングができました。 Page_Loadのところで、ばかばかばかばか書こうかと思ってましたので。 PageクラスのControlsコレクション内を走査して、くるくるまわすよう にしました。 NAL-6295さん、FOXさんつきあってくれてありがとうございます。 はやく人にアドバイスできるようにならねば〜。 |
1