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 :

Affichage d'un editBox et d'un Button suite à un click sur un lien hypertexte


Sujet :

ASP.NET

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur Informatique Senior
    Inscrit en
    Juin 2006
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Informatique Senior

    Informations forums :
    Inscription : Juin 2006
    Messages : 108
    Points : 65
    Points
    65
    Par défaut Affichage d'un editBox et d'un Button suite à un click sur un lien hypertexte
    Bonjour,

    Je débute en C# et je bloque sur un truc.

    Ce que je veux faire c'est :
    ===========CE QUE JE VEUX FAIRE===================
    1- Dans une page .aspx, j'ai un lien hypertexte.
    2- Lorsque je clique sur ce lien, la même page se recharge et cette fois affiche en plus du lien hypertexte, un EditBox et un Button.
    ==============================================

    J'ai utilisé du JavaScript comme suit:
    ==================CE QUE J AI TESTE===============
    1- Dans le codeBehind, j'ai initialisé une variable de session à "N":
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    protected void Page_Load(object sender, EventArgs e)
        {
            //visibleRefEditBox = false;
            Session["visibRefEditBox"] = "N";
        }
    2- Dans le .aspx, j'ai ajouté mon code javaScript comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <script type="text/javascript">
                function enableRefEditBox() {
                    <% Session["visibRefEditBox"] = "Y";%>
                }
                </script>
                <% if(Session["visibRefEditBox"] != "N")
                   {%>
                        <tr>
                            <td><asp:TextBox ID="TextBox1" runat="server"></asp:TextBox></td>
                            <td><asp:Button ID="Button1" runat="server" Text="Trouver" OnClick="Button1_Click"/></td>
                        </tr>
                <% }%>
    ==============================================


    Le problème que je recontre c'est:
    L'EditBox et le Button s'affichent dès le premier chargement de ma page, avant même que je clique sur le lien hypertexte

    Merci.

  2. #2
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Points : 3 102
    Points
    3 102
    Par défaut
    Aie aie aie, pour quoi faire ça avec un mix de js, c# et aspx dans un aspx ???
    La solution la plus simple consiste (selon moi) à :
    - inscrire tes trois contrôles dans ton aspx
    - ajouter "visible="false"" sur les deux contrôles dont la visibilité est conditionnée
    - Dans ton code-behind, sur l'évènement onPreRender, tester ta variable de session et, si tu y trouves "Y", simplement passer le visible de tes contrôles à True.

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur Informatique Senior
    Inscrit en
    Juin 2006
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Informatique Senior

    Informations forums :
    Inscription : Juin 2006
    Messages : 108
    Points : 65
    Points
    65
    Par défaut
    Pourriez-vous expliquer encore svp?

    J'ai fait le code suivant:

    =================Dans le .aspx========================

    1- J'ai déclaré mes 2 contrôles "invisible:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <asp:TextBox ID="TextBox1" runat="server" Visible="false"></asp:TextBox>
    <asp:Button ID="Button1" runat="server" Text="Trouver" OnClick="Button1_Click" Visible="false"/>
    2- J'ai ajouté un gestionnaire d'évènement associé au click sur mon lien hypertexte :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="Default.aspx" runat="server" onclick="editTextBox()">Trouver un article par référence 2</a>
    3- Dans le gestionnaire associé au click, je mets ma variable de session à "Y"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <script type="text/javascript">
                    function editTextBox() {
                        <% Session["visibRefEditBox"] = "Y";%>
                    }
                </script> "
    ==================================================

    ================et dans mon code Behind=================
    1- Je mets l'attribut Visible de mes 2 contrôles à TRUE:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    protected override void OnPreRender(EventArgs e)
        {
            if (((string)Session["visibRefEditBox"]) == "Y")
            {
                TextBox1.Visible = true;
                Button1.Visible = true;
            }
        }
    ===================================================

    Ca fonctionne pas toujours

  4. #4
    Membre éprouvé

    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 448
    Points : 1 234
    Points
    1 234
    Par défaut
    Soit utilise des asplaceHolder et gère la visibilité du côté serveur.
    Soit utilise du javascript uniquement.
    Most Valued Pas mvp

  5. #5
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Points : 3 102
    Points
    3 102
    Par défaut
    Il y a une incohérence entre ce que tu dis et ce que tu fais.
    Tu veux faire une action lorsque tu "recharges" la page.
    Pourquoi dans ces conditions vouloir utiliser du javascript ?

    Dans ton aspx:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <asp:TextBox ID="TextBox1" runat="server" Visible="false"></asp:TextBox>
    <asp:Button ID="Button1" runat="server" Text="Trouver" OnClick="Button1_Click" Visible="false"/>
    remplace ton ancre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="Default.aspx" runat="server" onclick="editTextBox()">Trouver un article par référence 2</a>
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <asp:LinkButton runat="server" ID="LinkButton1" OnClick="LinkButton1_Click">Trouver un article par référence 2</a>
    dans ton code-behind :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    protected void LinkButton1_Click(object sender, EventArgs e)
        {
            if (((string)Session["visibRefEditBox"]) == "Y")
            {
                TextBox1.Visible = true;
                Button1.Visible = true;
            }
            else
            {
                TextBox1.Visible = false;
                Button1.Visible = false;
             }
        }
    De cette manière (non testée, j'ai écris ici directement, tu auras donc peut-être quelques adaptations à faire.), ton linkbutton provoque un postback au clic. Tu recharges donc ta page, tu passes dans l'évènement LinkButton1_Click, évènement dans lequel tu testes ta session et peut gérer la visibilité de tes deux autres contrôles.

Discussions similaires

  1. [2007] Ruban Office 2007 : Créer un editbox avec un "spin button"
    Par Manu. dans le forum Microsoft Office
    Réponses: 1
    Dernier message: 17/01/2011, 11h03
  2. [VB.NET] comment inserer un lien hypertext sur un Button ?
    Par rroomm dans le forum Windows Forms
    Réponses: 2
    Dernier message: 11/07/2006, 08h52
  3. Affichage de texte en passant la sourie sur un lien
    Par jiji-789 dans le forum Général JavaScript
    Réponses: 14
    Dernier message: 29/05/2006, 19h25
  4. événement Click sur Check et option button ??
    Par badsepuku dans le forum IHM
    Réponses: 3
    Dernier message: 09/02/2006, 12h51
  5. [MySQL] Affichage de données après click sur liste déroulante
    Par leloup84 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 27/01/2006, 12h08

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