2012-04-14 87 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 2012-04-14 21:43:45

+0

不客氣。 – 2012-04-14 21:55:47

1

您可以將對頁面的引用作爲參數傳遞給helper方法,並再次在頁面上調用GetSearchResult。 (理想情況下,你的頁面應該實現一個接口,說ISearchPage,包含方法GetSearchResult)

[編輯:因爲我打字以上,大衛·安德森在他的回答中提供的代碼]

或者,從內你的幫助者方法,在幫助者對象上設置一個狀態標誌(或者使用一個狀態枚舉)。在您的頁面中,您可以讀取該標誌或枚舉值,如果該狀態表示應該再次調用GetSearchResult,請再次調用它。