2012-04-14 53 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,请再次调用它。