0

我有 3 个 ASP.NET 页面。每个都有自己的GetSearchResult方法,该方法产生不同的搜索结果并填充 GridView。每个页面都从帮助程序类中调用一个共享的帮助程序方法。

现在在这个助手类中,我想执行属于调用助手方法的页面上的GetSearchResult方法。

这可能吗?如果是这样,我应该怎么做?

4

2 回答 2

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();
    }
}
于 2012-04-14T20:40:21.067 回答
1

您可以将页面的引用作为参数传递给辅助方法,然后在页面上再次调用 GetSearchResult。(理想情况下,您的页面应该实现一个接口,比如 ISearchPage,其中包含方法 GetSearchResult)

[编辑:当我输入上述内容时,大卫安德森在他的回答中提供了代码]

或者,在您的辅助方法中,在辅助对象上设置状态标志(或使用状态枚举)。在您的页面中,您可以读取该标志或枚举值,如果状态表明应该再次调用 GetSearchResult,请再次调用它。

于 2012-04-14T20:43:40.550 回答