2012-04-14 19 views
0

3つのASP.NETページがあります。それぞれに独自のGetSearchResultメソッドがあり、これは異なる検索結果を生成し、GridViewを塗りつぶします。各ページは、ヘルパークラスから共有ヘルパーメソッドを呼び出します。ヘルパーメソッドを呼び出すページのヘルパークラスからメソッドを呼び出します。

このヘルパークラスでは、ヘルパーメソッドを呼び出したページにあるGetSearchResultメソッドが実行されます。

これは可能ですか?もしそうなら、どうしたらいいですか?

答えて

3

メソッド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(); 
    } 
} 
+0

ありがとう、これは私が必要なもののように見えます! – Tys

+0

ようこそ。 –

1

あなたはヘルパーメソッドに引数としてページへの参照を渡すと、ページ上で再びGetSearchResultを呼び出すことができます。 (理想的には、あなたのページには、インタフェースを実装する必要は、方法GetSearchResultが含まれているISearchPageを言う)

[編集:私は上記を入力したとして、デビッド・アンダーソンは彼の答えにコードを提供]の中から、

かあなたのヘルパーメソッド、ヘルパーオブジェクトのステータスフラグを設定します(またはステータスの列挙を使用します)。あなたのページでは、そのフラグまたは列挙型の値を読み取ることができ、ステータスにGetSearchResultを再度呼び出す必要があると表示された場合は、再度呼び出します。

関連する問題