Page_PreRenderComplete不会在 Web 控制中触发

本文关键字:控制 Web PreRenderComplete Page | 更新日期: 2023-09-27 18:34:52

由于某种原因,Page_PreRenderComplete()没有在用户 Web 控件中为我触发。这是我背后的代码,有什么想法吗?

    public partial class Views_CMSWebParts_GSAMetaTags : System.Web.UI.UserControl
    {
       public string Content { get; set; }
       public string LastModifiedDate { get; set; }
       public string PageTitle { get; set; }
       public string PageDescription { get; set; }
    protected void Page_PreRenderComplete(object sender, EventArgs e)
    {
        if (CMSContext.CurrentDocument.NodeClassName.Equals("ctv.DailyContent")
          || CMSContext.CurrentDocument.NodeClassName.Equals("ctv.Segment")
          ||  CMSContext.CurrentDocument.NodeClassName.Equals("ctv.segmentContainer"))
        {
            Content = "news-and-articles";
            //Published Date
            LastModifiedDate = ValidationHelper.GetString(CMSContext.CurrentDocument.GetValue("DocumentModifiedWhen"), "");
            PageTitle = CMSContext.CurrentPageInfo.DocumentPageTitle;
            PageDescription = CMSContext.CurrentPageInfo.DocumentPageDescription;
        }else if (CMSContext.CurrentDocument.DocumentName.Equals("Video"))
        {
            //using document name in this case becuase Video page type is Page (menu item)
            Content = "video";
        }

    }
}

Page_PreRenderComplete不会在 Web 控制中触发

我不认为UserControl有PreRenderComplete事件。 页面可以,但用户控件不会。 用户控件具有预呈现事件以及呈现事件。 你可以像这样使用它:

protected void Page_Load(object sender, EventArgs e)
{
    this.PreRender += new EventHandler([method name]);
}

是的,现在在 ASP.NET Web表单中,您有很多Page方法。

protected void Page_PreRenderComplete(object sender, EventArgs e)

如果调用Page_Load函数,这将确定有效。您不必像在框架 2.0 中那样创建事件 ASP.NET 因为现在在新框架 4.6 中,将自动调用所有页面生命周期事件。检查您的网络表单"某物.aspx"页面指令。