代码之家  ›  专栏  ›  技术社区  ›  Afshar Mohebi

在不覆盖的情况下加载两页

  •  1
  • Afshar Mohebi  · 技术社区  · 14 年前

    我有一个叫 PageBase 从ASP.NET继承 Page . 我想做点什么 页面库 Page_Load . 应用程序中的所有页面的逻辑都在 页负荷 . 我在想办法 页负荷 两者兼有 页面库 其他页面运行时不必重写 页负荷 在页面中。它拥有吗?

    1 回复  |  直到 14 年前
        1
  •  7
  •   this. __curious_geek    14 年前

    是的,这是可能的。只需在构造函数中附加页面加载处理程序。你就是这样做的。

    /// <summary>
    /// Your PageBase class.
    /// </summary>
    public class PageBase : System.Web.UI.Page
    {
        /// <summary>
        /// Initializes a new instance of the Page class.
        /// </summary>
        public Page()
        {
            this.Load += new EventHandler(this.Page_Load);
        }
    
        /// <summary>
        /// Your Page Load
        /// </summary>
        /// <param name="sender">sender as object</param>
        /// <param name="e">Event arguments</param>
        private void Page_Load(object sender, EventArgs e)
        {
            try
            {
            }
            catch
            {
                 //handle the situation gracefully.
            }
        }
    }
    

    编辑

    这就是它的工作原理。

    Load 是否在中声明了公共事件 System.Web.UI.Page 它在pageBase类中继承。由于这是一个可以在事件上附加尽可能多的处理程序的事件,因此每当 负载 引发了事件。在 PageBase 类,我们将事件处理程序例程附加到加载事件。这是更好的方法,而不是继承需要显式调用基本版本的onload保护例程。当创建/实例化实际的页对象时,首先创建基类对象,然后实例化子类,因此当构造PageBase对象时,事件处理程序将附加到加载事件上,每当页对象触发加载事件时,将调用该事件。

    推荐文章