从正在调用帮助程序方法的页面上的帮助程序类调用方法

本文关键字:帮助程序 调用 方法 | 更新日期: 2023-09-27 18:31:12

我有 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();
    }
}

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

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

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