我有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();
}
}
您可以將對頁面的引用作爲參數傳遞給helper方法,並再次在頁面上調用GetSearchResult。 (理想情況下,你的頁面應該實現一個接口,說ISearchPage,包含方法GetSearchResult)
[編輯:因爲我打字以上,大衛·安德森在他的回答中提供的代碼]
或者,從內你的幫助者方法,在幫助者對象上設置一個狀態標誌(或者使用一個狀態枚舉)。在您的頁面中,您可以讀取該標誌或枚舉值,如果該狀態表示應該再次調用GetSearchResult,請再次調用它。
謝謝,這看起來像我需要! – Tys 2012-04-14 21:43:45
不客氣。 – 2012-04-14 21:55:47