3つのASP.NETページがあります。それぞれに独自のGetSearchResultメソッドがあり、これは異なる検索結果を生成し、GridViewを塗りつぶします。各ページは、ヘルパークラスから共有ヘルパーメソッドを呼び出します。ヘルパーメソッドを呼び出すページのヘルパークラスからメソッドを呼び出します。
このヘルパークラスでは、ヘルパーメソッドを呼び出したページにあるGetSearchResultメソッドが実行されます。
これは可能ですか?もしそうなら、どうしたらいいですか?
3つのASP.NETページがあります。それぞれに独自のGetSearchResultメソッドがあり、これは異なる検索結果を生成し、GridViewを塗りつぶします。各ページは、ヘルパークラスから共有ヘルパーメソッドを呼び出します。ヘルパーメソッドを呼び出すページのヘルパークラスからメソッドを呼び出します。
このヘルパークラスでは、ヘルパーメソッドを呼び出したページにあるGetSearchResultメソッドが実行されます。
これは可能ですか?もしそうなら、どうしたらいいですか?
メソッドGetSearchResultをヘルパーメソッドのパラメータとして所有するクラスのインスタンスを渡します。これによりヘルパーメソッドは呼び出し側メソッドにアクセスできます。これを行うには、インターフェースを実装する必要があります。
public interface ISearchable
{
void GetSearchResult();
}
public class MyPage : Page, ISearchable
{
public void GetSearchResult() {
HelperClass.HelperMethod(this); // Pass in
}
}
public static class HelperClass
{
public static void HelperMethod(ISearchable page) {
page.GetSearchResult();
}
}
あなたはヘルパーメソッドに引数としてページへの参照を渡すと、ページ上で再びGetSearchResultを呼び出すことができます。 (理想的には、あなたのページには、インタフェースを実装する必要は、方法GetSearchResultが含まれているISearchPageを言う)
[編集:私は上記を入力したとして、デビッド・アンダーソンは彼の答えにコードを提供]の中から、
かあなたのヘルパーメソッド、ヘルパーオブジェクトのステータスフラグを設定します(またはステータスの列挙を使用します)。あなたのページでは、そのフラグまたは列挙型の値を読み取ることができ、ステータスにGetSearchResultを再度呼び出す必要があると表示された場合は、再度呼び出します。
ありがとう、これは私が必要なもののように見えます! – Tys
ようこそ。 –