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 :

[ASP 4 / C#] Obtenir taille d'un panel en code behind


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Vinceee38
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 134
    Par défaut [ASP 4 / C#] Obtenir taille d'un panel en code behind
    Bonjour tout le monde,

    Je vous résume la situation:

    -J'ai une page site.master
    -J'ai une page Contenu.aspx qui utilise la page site.master

    Dans ma page Contenu.aspx je souhaite ajouter une carte google map qui sera disponible dans un petit panel de 300px environ. En dessous de cette carte je souhaite ajouter un bouton qui permet de l'agrandir afin que le panel s'agrandisse pour prendre toute la largeur du site (soit la largeur de mon panel pnlCorp).

    Pour pouvoir faire ceci j'utilise le code suivant :
    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
        <asp:Panel ID="pnlBandeau" runat="server">
            <asp:UpdatePanel id="upnlMap" runat="server">
                <ContentTemplate>
                    <asp:Panel ID="pnlMap" runat="server">
                        <asp:Panel ID="pnlCarte" runat="server" CssClass="Arrondi">
                            <asp:Panel ID="pnlMapsearch" runat="server">
                                <cc1:GMap ID="GMap1" runat="server" />
                            </asp:Panel>
                        </asp:Panel>
                        <asp:button ID="butTouche" OnClick="butTouche_OnClick" runat="server" Text="Extend map"></asp:button>
                    </asp:Panel>
                    <asp:Panel ID="pnlInfo" runat="server">
     
                    </asp:Panel>
                </ContentTemplate>
            </asp:UpdatePanel>
        </asp:Panel>

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    protected void butTouche_OnClick(Object sender, EventArgs e)
            {
                Int32 tailleMap = Convert.ToInt32(GMap1.Width.Value);
                Panel pnlCorp = (Panel)this.Master.FindControl("pnlCorp");
                while (Convert.ToInt32(GMap1.Width.Value) < Convert.ToInt32(pnlCorp.Style["Width"]))
                {
                    tailleMap = tailleMap + 10;
                    GMap1.Width = tailleMap;
                }
     
            }
    Comme vous pouvez le voir c'est l'événement du OnClick de mon bouton.
    Je récupère la taille de la carte actuelle et j'essaye de l'agrandir jusqu'à qu'elle atteigne la taille de mon pnlCorp qui est dans ma page site.master

    J'assigne toutes les valeur avec des fichiers CSS.
    Le problème que je rencontre c'est que pnlCorp.Style["Width"] et GMap1.Width.Value retourne 0.

    J'ai essayé sur le Page_Load de mettre GMap1.Width = 300 et ca fonctionne. Seulement je peux faire ca pour GMap1 qui est fixe mais pas pour pnlCorp qui est dynamique :

    Voici mon code CSS pour pnlCorp:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    #pnlCorp 
    {
        width: 85%;
        background-color: White;
        color: black;
        margin : auto;
    }
    Je suis embêté je ne sais plus quoi essayer. Si vous avez une idée je vous serais trés reconnaissant.

    Merci d'avance à tout ceux qui prendront le temps de me lire et m'aider

  2. #2
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2009
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2009
    Messages : 38
    Par défaut
    ton fichier css est interprété coté client c'est à dire par ton navigateur.c'est à dire qu'au moment où tu essaies de le récuperer en C#, il n'est pas connus(t'est coté server)
    Je vois deux solutions à ton pb:
    1-Javascript: onclick="redimenssionnementGMAP();"
    sur un click client sur le bouton tu récupere la taille de ton panel et tu l'affecte la GMAp.(facile à faire)
    2-AJAX: toujours apres un click client tu recupere la taille de ton panel et l'envoyer dans une requete Ajax.


    Remarque :
    Récuperer la hauteur de pnalCorp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('<%=((Panel)this.Master.FindControl("pnlCorp")).ClientID%>').style.height()

  3. #3
    Membre confirmé Avatar de Vinceee38
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 134
    Par défaut
    Bonjour AghliasB merci beaucoup pour ta réponse, je pense que ca aurait pu fonctionner en bidouillant effectivement.

    Entre temps j'ai en fait opté pour une solution plus radicale, j'ai fait en sorte que mon site soit de 1280px en largeur fixe , et le reste en dynamique. Ca me permet de gèrer beaucoup plus facilement tout ce que je souhaite faire.

    Merci en tout cas d'avoir pris du temps pour moi.

    Bonne soirée

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

Discussions similaires

  1. [Débutant] Plusieurs rectangles de même taille dans un panel en code behind
    Par Rakken dans le forum Windows Presentation Foundation
    Réponses: 2
    Dernier message: 01/10/2012, 14h07
  2. Réponses: 6
    Dernier message: 05/06/2012, 08h21
  3. Réponses: 3
    Dernier message: 01/06/2011, 20h47
  4. [SL2B2] Stack Panel et Code behind
    Par Sargon dans le forum Silverlight
    Réponses: 1
    Dernier message: 10/06/2008, 17h47
  5. Obtenir taille d'un disque
    Par durk dans le forum Entrée/Sortie
    Réponses: 5
    Dernier message: 22/09/2005, 09h25

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