2009-09-30 8 views
0

J'essaye d'assigner un thème basé sur le type de navigateur. Je voudrais le faire dans une classe de base donc il suffirait d'être au même endroit (j'utilise une page maître). J'ai codé le suivant mais le "OnLoad" ici est exécuté avant le "Page_PreInit". Cela doit aller dans Page_PreInit, mais pourquoi ne pas tirer?Comment attribuer un thème dans la classe de base à l'aide de la page maître?

Imports Microsoft.VisualBasic 

Public Class MyBaseClass 
Inherits System.Web.UI.Page 

Private Sub Page_PreInit(ByVal sender As Object, ByVal e As System.EventArgs) 
    'Assign the CSS Theme based on the Browser Type 
    If (Request.Browser.Type = "IE8") Then 
     Page.Theme = "Standard-IE8" 
    Else 
     Page.Theme = "Standard" 
    End If 
End Sub 

Protected Overrides Sub OnLoad(ByVal e As System.EventArgs) 

    MyBase.OnLoad(e) 
End Sub 

End Class 

Ensuite, je ma page de connexion codée pour hériter de la classe de base:

Partial Class Login 
'Inherits System.Web.UI.Page 
Inherits MyBaseClass 

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 

Merci, James

Répondre

1

Vous devez overrideOnPreInit dans la classe de base.

Protected Overrides Sub OnPreInit(ByVal e As System.EventArgs) 
     'Assign the CSS Theme based on the Browser Type 
     If (Request.Browser.Type = "IE8") Then 
      Page.Theme = "Standard-IE8" 
     Else 
      Page.Theme = "Standard" 
     End If 
     MyBase.OnPreInit(e) 
    End Sub 

Voir here pour plus d'informations sur l'utilisation d'une classe de base personnalisée.

+0

C'est un gagnant. Merci beaucoup! – James

Questions connexes