从调用助手方法的页面上的助手类调用方法
问题描述:
我有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