トップ回答者
Isvalidに関して

質問
-
ASP.NETで開発を行っています。
サーバー側のコードでページ検証の結果を確認したいのですが、Isvalidプロパティの確認方法には
Page.Isvalid/Me.Isvalid/MyClass.Isvalid等があり、どれを使えば良いのか分かりません。
どなたかこれらの違いを教えて頂けないでしょうか?
ちなみに、MyClassの場合インスタンスのクラスがどのクラスであるかに関わらず、確実にMyClassが用いられたクラスのプロパティを呼び出し、Meの場合はMeが用いられたクラスが何であるかに関わらず、インスタンスのクラスのプロパティが呼び出されるという認識程度はあります。
回答
-
MeとMyClassの違いがわかれば、必然的にどれを使うべきかご理解頂けるのではないかと思います。
じゃんぬさんが、Me、MyClassの違いを纏めていらっしゃっているので、ご参考にしてみると良いかもしれません。
(概要レベルではわかりやすいです)
http://blogs.wankuma.com/jeanne/archive/2006/11/09/44157.aspx
今回の場合だと、
Me:インスタンスが示すクラスのIsValid
MyClass:呼び出されたクラス内にあるIsValidということになりますので、用途に合わせて使うべきだと思います。
MyClass.IsValidは、「カスタム用Validatorコントロール」を「ASP.NET標準用のValidator系コントロール」から
継承して作成した際、その「カスタム用Validatorコントロール内」でMyBase.IsValidやMyClass.IsValidを使うことがあります。
また、*.aspxや*.ascx上から、IsValidを確認する場合は、Meで十分だと思っています。
(特定コントロールのIsValidを確認したい場合は、また話が別ですが)
それから、Page.IsValidですが、MSDN(http://msdn2.microsoft.com/ja-jp/library/system.web.ui.control.page(VS.80).aspx)
にもあるように、「Page(クラスのというべきかも) インスタンスへの参照」と明記されているので、
各コントロールは、Pageプロパティが継承されていたと思います。各コントロールから、ページのIsValid(チェック結果)を確認したい時は、Page.IsValidを使うという感じになります。
あまりうまく説明ができなくてすいませんが、ご参考になれば幸いです。
#上記は、こう使いなさいというものではなく、あくまで1例としてご理解頂ければと思います。
すべての返信
-
MeとMyClassの違いがわかれば、必然的にどれを使うべきかご理解頂けるのではないかと思います。
じゃんぬさんが、Me、MyClassの違いを纏めていらっしゃっているので、ご参考にしてみると良いかもしれません。
(概要レベルではわかりやすいです)
http://blogs.wankuma.com/jeanne/archive/2006/11/09/44157.aspx
今回の場合だと、
Me:インスタンスが示すクラスのIsValid
MyClass:呼び出されたクラス内にあるIsValidということになりますので、用途に合わせて使うべきだと思います。
MyClass.IsValidは、「カスタム用Validatorコントロール」を「ASP.NET標準用のValidator系コントロール」から
継承して作成した際、その「カスタム用Validatorコントロール内」でMyBase.IsValidやMyClass.IsValidを使うことがあります。
また、*.aspxや*.ascx上から、IsValidを確認する場合は、Meで十分だと思っています。
(特定コントロールのIsValidを確認したい場合は、また話が別ですが)
それから、Page.IsValidですが、MSDN(http://msdn2.microsoft.com/ja-jp/library/system.web.ui.control.page(VS.80).aspx)
にもあるように、「Page(クラスのというべきかも) インスタンスへの参照」と明記されているので、
各コントロールは、Pageプロパティが継承されていたと思います。各コントロールから、ページのIsValid(チェック結果)を確認したい時は、Page.IsValidを使うという感じになります。
あまりうまく説明ができなくてすいませんが、ご参考になれば幸いです。
#上記は、こう使いなさいというものではなく、あくまで1例としてご理解頂ければと思います。