begin process at 2012 05 27 19:03:52
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive ASP & ASP.NET

 > 

Archives ASP & ASP.NET

 > 

Divers

 > 

[C#] Accès au HEAD de la page


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

[C#] Accès au HEAD de la page

samedi 19 mars 2005 à 13:11:26 | [C#] Accès au HEAD de la page

stailer

Bonjour,

Je suis en train de faire plusieurs contrôles serveurs en asp.net et la plupart ont besoin d'un fichier javascript externe pour fonctionner ainsi qu'un CSS.
Etant donné que je veux respecter au maximum le XHTML (et que j'y arrive : ) ) j'aimerais référencé ces fichiers externes dans le HEAD de la page qui contient le contrôle serveur.
Alors la solution est toute simple : l'écrire soi-même... Mais bon, c'est pas très pro.
Donc vous aurez deviné ma question : Est-il possible, dans le code d'un contrôle serveur, de lui dire d'écrire dans le HEAD qui le contient ?

Merci pour votre aide,

<--St@iLeR-->
samedi 19 mars 2005 à 16:16:19 | Re : [C#] Accès au HEAD de la page

jesusonline

Membre Club Administrateur CodeS-SourceS
oui, c'est possible, mais tu vas t'amuser

Pour cela il faut que tu dérives l'objet page et que tu en fasses hériter toutes tes pages, ensuite tu overrides la méthode render, et tu fais un peu de manipulation de string, et tu obtient ce que tu veux.

Regarde la classe de Sebmafate sur www.asp-php.net qui permet justement d'ecrire du code xhtml avec asp.net


Cyril - MCP ASP.net
Webmaster de : Hoshimi.CodeS-SourceS.fr
samedi 19 mars 2005 à 17:31:19 | Re : [C#] Accès au HEAD de la page

stailer

ben justement c'est sa classe (que j'ai un peu modifié) que j'utilise dans mon appli...
Mais moi j'aurai préféré que ce soit au niveau du contrôle serveur lui-même concernant le référencement des fichiers .Js et .Css.
En fait ce sont surtout les css qui posent souci... car même si on mes les Js dans le body ca marche et ca respecte le XHTML. il aurait fallu que les composants posés sur les webforms génère ce texte (par exemple) dans le head :

<style type="text/css">
        @import url( files/DotNetMenu/menu.css );
 </style>

<--St@iLeR-->
samedi 19 mars 2005 à 17:32:03 | Re : [C#] Accès au HEAD de la page

stailer

Désolé pour les fautes d'orthographe...

<--St@iLeR-->
samedi 19 mars 2005 à 17:42:30 | Re : [C#] Accès au HEAD de la page

jesusonline

Membre Club Administrateur CodeS-SourceS
moi aussi j'ai pas mal modifié sa classe car j'ai trouvé quelques bugs :p (je lui ai dit, et il mettra surement à jour la source la bas)

Sinon ce que je ferais c'est assez simple, j'overriderais la fonction RegisterStartupScript de la classe Usercontrol, je ferais toutes les modifs la dedans, pour ecrire dans le head de la page, et ensuite j'ajouterais mes scripts ou css via registerstartupscript.

Pour pouvoir écrire dans le head à parti de userControl, il faut rajouter une méthode dans la classe XHTMLPage qui prend en paramètre, un ID (par exemple) et le code a rajouter ...

dans le userControl pour écrire tu n'auras qu'a faire un truc du genre

ctype(me.page,xhtmlpage).AddFonction ...

Sinon une méthode plus simple, mais plus "crade" est de rajouter ton CSS via un script JS ... mais bon c'est pas bien, on garde certes la validation du xhtml mais il n'a pas été pensé dans ce but.


Cyril - MCP ASP.net
Webmaster de : Hoshimi.CodeS-SourceS.fr
samedi 19 mars 2005 à 19:44:12 | Re : [C#] Accès au HEAD de la page

stailer

Ben écoute j'ai essayé ton avant dernière solution, mais ca marche pas ou j'ai pas compris... Tu pourrais me donner un exemple simple ?

<--St@iLeR-->
dimanche 20 mars 2005 à 12:30:15 | Re : [C#] Accès au HEAD de la page

jesusonline

Membre Club Administrateur CodeS-SourceS
J'ai donné aucune solution, mais juste une méthodologie.

Ce qu'il faut comprendre c'est comment fonctionne la classe que t'as dérivé, comment tu peux recuperer ces infos.

Pour faire ceci, il faut deja etre bien familier avec les controles, voir comment les controles interragise avec la page etc...

Ensuite quand t'auras bien compris ca :) tu pourras dériver ton userControl, pour qu'il fasse appel a une fonction de la page de base :)




Cyril - MCP ASP.net
Webmaster de : Hoshimi.CodeS-SourceS.fr
dimanche 20 mars 2005 à 19:34:29 | Re : [C#] Accès au HEAD de la page

stailer

Ben je pense comprendre la classe que j'ai dérivé puisque je m'en sers partout dans mon appli et je pense comprendre les usercontrol puisque j'en ai fait plusieurs... C'est donc ta "méthodologie" qui reste évasive.

J'ai bien rajouter la méthode comme tu as dit dans la classe XHTMLPage et j'ai bien fait la conversion de type (en C# par contre)  comme ceci :

(this.Page.Parent as XHTMLPage).AjouteDansHead("texte à ajouter");

Donc j'ai bien tout suivi à la lettre mais ca me dit que la cast n'est pas valide... J'ai essayé avec this.Page ou this.Parent ou this.Parent.Page, mais ca revient au même.

<--St@iLeR-->
dimanche 20 mars 2005 à 19:40:36 | Re : [C#] Accès au HEAD de la page

jesusonline

Membre Club Administrateur CodeS-SourceS
en C# ca doit donner ca :

((XHTMLPage)this.page).AjouteDansHead("texte à ajouter");

Ce bout de code, doit etre dans un de tes UserControl et il faut imperativement que toutes les pages contenant cet UC dérive de XHTMLPage

dans XHTMLPage tu dois rajouter la fonction AjouteDansHead (en public bien sur) 

Normalement ca doit marcher !

T'obtient cette erreur quand ? à la compil ou a l'execution ?


Cyril - MCP ASP.net
Webmaster de : Hoshimi.CodeS-SourceS.fr
dimanche 20 mars 2005 à 20:35:30 | Re : [C#] Accès au HEAD de la page

stailer

Ton code ou celui ci fonctionne en l'appellant directement dans la Webform (évènement load)
En fait j'ai un stringbuilder dans la classe XHTMLPage que je rempli donc avec le code ci-dessous et la méthode est appellée directement par XHTMLPage.

(this.Page as XHTMLPage).TexteHead.Append("teste1");
ou ((XHTMLPage this.Page).TexteHead.Append("teste1");

Bon, maintenant si je copie ma classe XHTLMPage dans le projet de mon controle serveur et que je copie donc la ligne de code précédente (dans n'importe quel évènement load, init, prerender ou render ) ca marche plus et j'ai ceci à l'exécution :

le référence d'objet n'est pas définie à une instance d'un objet

j'ai éventuellement essayé ceci sans succés (j'ai une StackOverflowException) :

public override Page Page
        {
            get
            {
                (this.Page as XHTMLPage).TexteHead.Append("teste1");
                return base.Page;
            }
            set
            {
                base.Page = value;
            }
        }

Il y a un truc que je dois pas faire... Déjà je trouve bizarre de devoir copier XHTMLPage dans le répertoire du projet du controle serveur...

<--St@iLeR-->

1 2

Cette discussion est classée dans : page, contrôle, contient, accès, head


Répondre à ce message

Sujets en rapport avec ce message

Envoie de données vers une page d'accès aux données et redirection vers celle-ci (URGENT) [ par LG1 ] Bonjour1) Dans une page HTML, en vbscript j'exécute une requête et je mets le résultat dans un RecordSet. 2) J'ai créé une page d'accès aux données à Empêcher l'accès direct à une page [ par jeffwow ] Après avoir cherché partout sur le net (google, forums, etc) je m'en remets à vous pour m'aider. Ma question est probablement très bête pour vous, ma controle acces fichier [ par imer ] Bonsoir,Comment contrôler l'accès à un fichier par une page asp sans ensuite renseigner l'utilisateur sur l'adresse exacte du fichier.Détails:je souha Contrôle d’accès [ par dorotf ] Bonjour,Je travail avec Dreamweaver MX 2004 en ASP VbPas de problème pour connecter un utilisateurMais je n?arrive pas à l?identifier sur la page suiv [ASPX][VB.NET]Custom Contrôle et rendu sur la page aspx [ par chrisisis ] Bonjour, J'ai créer un contrôle personnalisé qui hérite de webControl (C'est un contrôle dépendant basé sur un modèle) J'ai réécrit, entre autre, les include bizarre [ par yami_no_ookami ] je fais un site asp et voici mon probleme. Quand je fais par exemple ceci : ma page m IMPORTANT Impression page asp [ par malerune ] Bonjourj'arrive à imprimer ma page asp, mais le soucis principal c'est qu'elle contient des textarea (ils sont limités à 6 lignes imposées par les uti recharger toute la page lors de la confirmation d'un contrôle utlisateur.... [ par lutin2004 ] Comment fait-on pour recharger toute la page lors de confirmation d'un formulaire contenu par un contrôle utilisateur?Merci d'avance Contrôle disparu du panel... [ par DevilYann ] Bonjour Dans le cadre de mon boulot, je dois afficher des pages avec des champs soit en visualisation (labels) soit en saisie (textboxs) suivant les impression thead [ par kulinicm ] bonjour,mon probleme es le suivant :j'ai une page ASP ( pas de .net) qui contient un tableau.ce tableau contient beaucoup de case, et lord de l'impres


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,842 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales