OVH Cloud OVH Cloud

Souci de dérivation

2 réponses
Avatar
MrChris
Salut !

J'ai deux page asp.net page1.aspx et page2.aspx qui ont chacune un
placeholder1.
Page1.aspx à pour code behind page1.vb (classe cpage1)
et page2.aspx page2.vb (classe cpage2 inherits cpage1)

J'ai le problème suivant : dans le code généré par le concepteur web form de
page2,
il me met automatiquement la déclaration de placeholder1, mais du coup il
est en conflit
avec le placeholder1 de la classe de base (cpage1).

Si je met shadows pour le placeholder1 de page2, du coup c'est le
placeholder1 de
page1 qui plante (La référence d'objet n'est pas définie à une instance d'un
objet).

Comment faire, je crois que j'ai un problème de conception.

Merci
MrChris

2 réponses

Avatar
RAVAILLE James
Bonjour,

Tu peux laisser page1.aspx et cpage1. En revanche, tu peux supprimer la
déclaration de placeholder1 dans la classe cpage2, mais tu dois laisser la
déclaration en HTML dans page2.aspx...

Je ne connais pas ton application, mais je me pose tout de même une question
: pour cpage2 hérite d'une page Web. Tu pourrais la faire hériter non d'une
page web, mais d'une simple classe VB.NET, qui elle-même hérite de la classe
System.Web.Ui.Page. Dans cette nouvelle page Web, tu peux déclarer ton
contrôle placeholder1 et l'initialiser.

A+.
James RAVAILLE.

-----------------------

"MrChris" a écrit :

Salut !

J'ai deux page asp.net page1.aspx et page2.aspx qui ont chacune un
placeholder1.
Page1.aspx à pour code behind page1.vb (classe cpage1)
et page2.aspx page2.vb (classe cpage2 inherits cpage1)

J'ai le problème suivant : dans le code généré par le concepteur web form de
page2,
il me met automatiquement la déclaration de placeholder1, mais du coup il
est en conflit
avec le placeholder1 de la classe de base (cpage1).

Si je met shadows pour le placeholder1 de page2, du coup c'est le
placeholder1 de
page1 qui plante (La référence d'objet n'est pas définie à une instance d'un
objet).

Comment faire, je crois que j'ai un problème de conception.

Merci
MrChris





Avatar
MrChris
Merci pour ta réponse

Tu peux laisser page1.aspx et cpage1. En revanche, tu peux supprimer la
déclaration de placeholder1 dans la classe cpage2, mais tu dois laisser la
déclaration en HTML dans page2.aspx...



C'est ce que je fait !!!
Mais le problème est que comme Visual Studio voit la déclaration en HTML
dans page2.aspx
de placeholder1, il rajoute automatiquement la déclaration dans la classe
cpage2.
j'ai beau le supprimer et ca fonctionne, mais c'est galère car à chaque fois
que j'ouvre page2.aspx, il fait la modif dans cpage2...
Ca me rend fou !

Je ne connais pas ton application, mais je me pose tout de même une


question
: pour cpage2 hérite d'une page Web.



J'ai deux page qui affiche les même données, mais elle on un look
différent...

Tu pourrais la faire hériter non d'une
page web, mais d'une simple classe VB.NET, qui elle-même hérite de la


classe
System.Web.Ui.Page. Dans cette nouvelle page Web, tu peux déclarer ton
contrôle placeholder1 et l'initialiser.



J'ai trouvé pratique d'hériter de Web.Ui.Page, ca me permettait d'avoir
accès à
mes variable dans global.asax (application et session)...
Mais je m'y prend peut-être mal !

Je viens de voir qu'il existait HttpApplication, qui me permettrait
peut-être d'accéder
a mes variable d'application et de session sans avoir besoin de dériver de
page...
Je teste...

merci
@+ MrChris