Comment utiliser Page_Init dans asp.net
J'ai écrit ce code ci-dessous pour définir le thème de la valeur sélectionnée dans la liste, il travaille pour cette page:
protected void Page_Init(object sender, EventArgs e)
{
HttpCookie c = Request.Cookies["theme"];
Page.Theme = c == null ? "Aqua" : c.Value;
}
protected void Page_Load(object sender, EventArgs e)
{
HttpCookie c = Request.Cookies["theme"];
if (!IsPostBack && (c != null))
rbList.Value = c.Value;
}
Problème: je veux appliquer le même thème à toutes les autres pages pour laquelle j'ai écrit Page_Init
fonction dans les pages où je veux appliquer le thème, mais ce Page_Init
ne fonctionne pas en deuxième page. ai-je raté quelque chose??
Voici le code que j'ai écris en deuxième page:
protected void Page_Init(object sender, EventArgs e)
{
HttpCookie c = Request.Cookies["theme"];
Page.Theme = c == null ? "Aqua" : c.Value;
}
Essayé de débogage? Semble très vague quant à ce qui ne fonctionne pas pour vous.
Appliqué thème ne fonctionne pas @Tobberoth
C'est assez évident. Mais pourquoi? Est Page_Init pas appelé? Est Demande.Les Cookies["thème"] de retour est nulle? Est Page.Thème pas réglé correctement? Toutes ces questions peuvent être répondues en parcourant la fonction Page_Init.
il ne fonctionne pas ou il n'est pas appelée?
Page_Init pas appelé
Appliqué thème ne fonctionne pas @Tobberoth
C'est assez évident. Mais pourquoi? Est Page_Init pas appelé? Est Demande.Les Cookies["thème"] de retour est nulle? Est Page.Thème pas réglé correctement? Toutes ces questions peuvent être répondues en parcourant la fonction Page_Init.
il ne fonctionne pas ou il n'est pas appelée?
Page_Init pas appelé
OriginalL'auteur user2835256 | 2013-12-11
Vous devez vous connecter pour publier un commentaire.
S'il vous plaît essayer de mettre:
Dans Page_Load() la Fonction de la page où vous souhaitez utiliser l'appliqué thème, & laissez-moi savoir ce que le résultat de l'.
Suggestion: Utilisation
PageHelper
@RononDex vous suggère d'utiliser ci-dessus.OriginalL'auteur Tameen Malik
Vérifier la durée de vie de vos cookies, peut-être que le cookie est supprimé peu de temps après l'avoir définie.
Je serais très vous des conseils à au moins mettre de la logique dans une fonction statique, de cette façon, vous n'avez pas de code redondant sur toutes les pages:
PageHelper.cs
Et dans votre Page_Init méthodes:
Response.Cookies["theme"].Expires = DateTime.Now.AddDays(1);
OriginalL'auteur RononDex
Choses à essayer...
Assurez-vous que le cookie est envoyé dans la requête
Assurez-vous que le thème n'est pas remplacée plus tard dans la page cycle de vie
Assurez-vous que la page a AutoEventWireup la valeur true dans la page de balisage. Sinon, votre Page_init sera traitée comme une simple méthode
Maintenant, comme une note de côté pourquoi ne pas vous créer une page de base, pour cela, de faire toutes les pages de votre site web hériter de cette page de base et déplacez le thème du code de la page de base de sorte que vous pouvez garder le code en un seul lieu. Ou si vous utilisez des pages maîtres de laisser la page maître de faire ce travail.
Acclamations
Leo
OriginalL'auteur Leo