【问题标题】:Set StyleSheetTheme in @Page directive in ASP.NET在 ASP.NET 的 @Page 指令中设置 StyleSheetTheme
【发布时间】:2011-11-02 17:57:23
【问题描述】:

我在 asp.net 应用程序中有一个属性

ABPS.PRR.WEB.CurrentSession.Theme

我将它设置在 aspx 页面中的 @Page 指令中,例如:

<%@ Page StylesheetTheme="ABPS.PRR.WEB.CurrentSession.Theme"  Title="Default" ... %>

但我遇到了运行时错误

Parser Error Message: Theme 'ABPS.PRR.WEB.CurrentSession.Theme' cannot be found in the application or global theme directories.

如何在页面指令中实现这一点?

【问题讨论】:

    标签: asp.net themes stylesheet page-directives


    【解决方案1】:

    你可以在代码中设置它。

    把它放在 Page_PreInit 方法中。

    Page.Theme = ABPS.PRR.WEB.CurrentSession.Theme
    

    Page.StyleSheetTheme = ABPS.PRR.WEB.CurrentSession.Theme
    

    【讨论】:

      【解决方案2】:

      StylesheetTheme 需要主题名称,而您以错误的方式提供此名称。

      如果你想在运行时设置主题,那么你需要将它存储在会话变量中,你可以这样做......

      protected void Page_PreInit(object sender, EventArgs e)
      {
          Page.StylesheetTheme = ABPS.PRR.WEB.CurrentSession.Theme;
      }
      

      【讨论】:

        【解决方案3】:

        如果您想为页面的 StyleSheetTheme 属性设置其他值,您需要覆盖它:

        public override string StyleSheetTheme
        {
            get
            {
                return ABPS.PRR.WEB.CurrentSession.Theme;
            }
            set
            {
            }
        }
        

        但如果你想改变 Theme 属性,只需在 Page_PreInit 事件中设置它的值:

        protected void Page_PreInit(object sender, EventArgs e)
        {
            this.Theme = ABPS.PRR.WEB.CurrentSession.Theme;
        }
        

        【讨论】:

          猜你喜欢
          • 2010-10-04
          • 2010-09-26
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-03-03
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多