- - PR -
変数宣言による動作の違いについて
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-07-20 22:36
現在、.Net Framework2003、ASP.NET、C#を使用して
開発をしております。 そこで下記のような現象が発生しています。 ============================================================ ○現象1 1.Label型の変数をprivateで宣言する 2.上記変数にプロパティ設定した後、メソッドA内で TableCellにAddする。 発生現象:TableCellに追加したはずのLabelが生成されない。 メソッドAではvisibleプロパティはtrueであるが RenderContentsメソッドをオーバーライドして Label型の変数を参照すると、visibleプロパティはfalseに 変更されている。 ○現象2 1.メソッドA内でLabel型の変数を宣言する 2.上記変数にプロパティ設定した後、メソッドA内で TableCellにAddする。 発生現象:TableCellに追加したLabelは生成されない。 メソッドAではvisibleプロパティはtrue、 かつRenderContentsメソッドをオーバーライドして Label型の変数を参照すると、visibleプロパティはtrue を保持している。 ============================================================ 実現したいことは【現象2】の方法で解決できたのですが、 なぜprivateで宣言した変数だと、うまく値が 保持されないのか、わかりません。 ※ちなみにvisibleプロパティ以外のプロパティ情報の 保持はされていました。 上記現象に尽きまして、ご存知の方がいらっしゃいましたら、 ご教授の程、宜しくお願いいたします。 | ||||
|
投稿日時: 2005-07-21 11:06
ん〜・・・? privateと宣言していたらインスタンスを参照した状態にはなっていない(null)と思いますが。 FindControl()等を使えばそのLabelのインスタンスを取得できるかもしれませんが、そのまま Label1.Visible などとプロパティを設定・取得はできないと思います。 何か勘違いされているのでは? 私が勘違いしているのかな? | ||||
|
投稿日時: 2005-07-21 11:07
コードビハインドを使っている場合、コードページ(.csファイル)に記述されたコードは直接動いてるわけじゃありません。
aspxファイルがコードページを継承して、aspxファイル(子クラス)から親クラスのコードを実行する、という形になります。 このため、private宣言された変数は継承したaspxファイルからは見つけることができず、うまく動作しない、ということになります。 たぶんそこじゃないのかなぁ。 |
1