IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

[VB .net + HTML] Afficher un ascx en l'appelant par une fonction en Behind


Sujet :

ASP.NET

  1. #1
    Jsh
    Jsh est déconnecté
    Membre régulier Avatar de Jsh
    Inscrit en
    Août 2005
    Messages
    100
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Août 2005
    Messages : 100
    Points : 90
    Points
    90
    Par défaut [VB .net + HTML] Afficher un ascx en l'appelant par une fonction en Behind
    Bonjour,

    J'aimerai afficher un UserControl (.ascx) différent suivant le type d'utilisateur qui se connecte à mon site (nous sommes ici en .Net 2.0).

    Dans mon code HTML :

    Déclaré en début de page html avant le <head> :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default2.aspx.vb" Inherits="Default2" %>
     
    <%@ Register Src="HeaderEleve.ascx" TagName="HeaderEleve" TagPrefix="uc1" %>
    <%@ Register Src="HeaderProf.ascx" TagName="HeaderProf" TagPrefix="uc2" %>
    <%@ Register Src="HeaderDir.ascx" TagName="HeaderDir" TagPrefix="uc3" %>
    <%@ Register Src="HeaderParent.ascx" TagName="HeaderParent" TagPrefix="uc4" %>
    <%@ Register Src="HeaderAdm.ascx" TagName="HeaderAdm" TagPrefix="uc5" %>
    <%@ Register Src="Footer.ascx" TagName="Footer" TagPrefix="uc6" %>
    Puis, ensuite, j'appelle ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
    <body>
    <div style="margin-left:40px"><form id="form1" runat="server"></div><div style="margin-left:40px"><div style="margin-left:40px"><div></div></div><div style="margin-left:40px"><div style="margin-left:40px"><div style="margin-left:40px"><%= EnTete()%></div></div></div><div style="margin-left:40px"><div style="margin-left:40px"></div</div></div><div style="margin-left:40px"></form></div></body>
    Dans mon code Vb, je renvois ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    Function EnTete()
            Dim LigneHeader As String
            LigneHeader = ""
            Select Case Session("TPU")
                Case 1
                    LigneHeader = "<uc1:HeaderEleve ID=""HeaderEleve1"" runat=""server"" />"
                Case 2
                    LigneHeader = "<uc2:HeaderProf ID=""HeaderProf1"" runat=""server"" />"
                Case 3
                    LigneHeader = "<uc3:HeaderDir ID=""HeaderDir1"" runat=""server"" />"
                Case 4
                    LigneHeader = "<uc4:HeaderParent ID=""HeaderParent1"" runat=""server"" />"
                Case 5
                    LigneHeader = "<uc5:HeaderAdm ID=""HeaderAdm1"" runat=""server"" />"
            End Select
            Return LigneHeader
        End Function
    Cependant, au lancement de la page, rien ne s'affiche, et, pourtant, cela passe bien dans ma fonction.

    Quelqu'un verrait-il un problème quelconque dans ce code ?
    Membre ou futur membre d'une SSII ?
    N'hésite pas à rejoindre le groupe social SSII

  2. #2
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2006
    Messages
    400
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 400
    Points : 459
    Points
    459
    Par défaut
    Bonjour,

    Juste une question... Dans quel évènement de la page appelles-tu ta fonction EnTete(). Je garantis rien, mais essais de l'appeler dans l'évènement "Init" de ta page si ce n'est pas le cas.
    Bon courage.
    "Ce n'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont forcément raison" (Bernard Weber "Le mystere des dieux")

  3. #3
    Jsh
    Jsh est déconnecté
    Membre régulier Avatar de Jsh
    Inscrit en
    Août 2005
    Messages
    100
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Août 2005
    Messages : 100
    Points : 90
    Points
    90
    Par défaut
    Euh j'ai tenté le Init mais le résultat est le même.

    J'ai tenté pour être sur car en fait je voudrai que mon UserControl s'affiche à un endroit donné de ma page HTML (dans le <div> précisé) donc j'appelle ma fonction sur la page HTML ainsi :
    Merci quand même
    Membre ou futur membre d'une SSII ?
    N'hésite pas à rejoindre le groupe social SSII

  4. #4
    Nouveau membre du Club
    Inscrit en
    Janvier 2004
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 56
    Points : 38
    Points
    38
    Par défaut
    Essaye de mettre tous tes usercontrol sur la page simplement par drag and drop sans retoucher le code html et dans le on_load (code behind) fixe les propriétés visible de chacun de tes uc en fonction de l'utilisateur.

  5. #5
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2006
    Messages
    400
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 400
    Points : 459
    Points
    459
    Par défaut
    Re bonjour.

    Pardon j'avais mal regarder le code.
    Du coups il y a autre chose qui m'interpelle: la syntaxe <%= %> est réservé au variable Inner HTML. Il me semble que pour appeler une fonction dans le html c'est <%#mafonction()%> .
    Sinon, à l'éxecution, dans la source de la page html produit il y a quelques chose?
    Enfin, sa ne résoud pas ton problème, mais tu peux mettre ta gestion utilisateur dans ton composant et déclarer dans celui-ci une propriété publique que tu initialises dynamiquement dans ta page?

    Voilà en esperant que sa puisse t'aider

    Edit: Effectivement pour ta fonction Entete(), le <%=%> peut marcher mais si ta fonction est en protected.
    "Ce n'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont forcément raison" (Bernard Weber "Le mystere des dieux")

  6. #6
    Jsh
    Jsh est déconnecté
    Membre régulier Avatar de Jsh
    Inscrit en
    Août 2005
    Messages
    100
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Août 2005
    Messages : 100
    Points : 90
    Points
    90
    Par défaut
    Et bien merci messieurs !

    Tout d'abord :
    @mafyoso : j'ai tenté ta solution, mais je n'y ai pas trouvé grand chose en fait. Je n'avais toujours aucun affichage.

    @cyrilc : Bah oui ! bon sang mais c'est bien sûr ! Pourquoi ne pas avoir réalisé plus tôt que dans UserControl il y a control ! Donc il y a quelques propriétés ! mdr !

    Comme quoi parfois on se complique la vie...

    Merci à vous deux en tout cas !

    Membre ou futur membre d'une SSII ?
    N'hésite pas à rejoindre le groupe social SSII

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 30
    Points : 31
    Points
    31
    Par défaut
    Bonjour.
    Avant le prerender, LoadControl(MonUserControl.ascx) te renvoie un UserControl, que tu peux add par exemple dans un panel : MonPanel.controls.add(LoadControl(MonUserControl.ascx)).
    Et tu te contente de modifier l'url de l'ascx à charger.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Appel d'une fonction .NET a partir de JAVA
    Par cdekapto dans le forum Langage
    Réponses: 1
    Dernier message: 13/02/2008, 11h36
  2. Réponses: 1
    Dernier message: 26/02/2007, 09h44
  3. Réponses: 3
    Dernier message: 13/12/2006, 16h01
  4. [html:link] Appel d'une fonction javascript
    Par chennuo dans le forum Struts 1
    Réponses: 2
    Dernier message: 05/10/2006, 17h13
  5. [vb.net][html] afficher une page html dans une interface vb?
    Par graphicsxp dans le forum Windows Forms
    Réponses: 1
    Dernier message: 29/09/2005, 17h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo