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 :

Modifier TextBox via Linkbutton d'une autre page [Débutant]


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2011
    Messages : 10
    Par défaut Modifier TextBox via Linkbutton d'une autre page
    Bonjour à tous,

    Je travaille sur une application web ASP.NET en C# sous VS2010.

    Sur ma page "Page1.aspx" j'ai un contrôle TextBox qui a pour ID "TextBox1".
    Lorsqu'un utilisateur tape un mot dans cette TextBox et clique sur un bouton "Chercher", une nouvelle page "Page2.aspx" s'ouvre et affiche les résultats de la recherche (recherche dans une base de données).
    J'ai un contrôle PlaceHolder sur ma Page2.
    Dans le codebehind (Page_Load), une boucle foreach ajoute un contrôle LinkButton dans le PlaceHolder pour chaque résultat de la recherche.

    Mon objectif: lorsque l'utilisateur clique sur le LinkButton de son choix, la Page2 se ferme et le "Text" du LinkButton se retrouve dans le "Text" de la TextBox1.

    Mon problème: je n'arrive pas à accéder à la propriété de ma TextBox1 depuis ma Page2 et je ne sais pas très bien utiliser la propriété OnClick du LinkButton et la fonction javascript que je dois lui associer.

    J'ai essayé d'être général dans la description du projet qui est en réalité plus complexe, j'espère ne pas avoir oublié d'informations importantes pour la résolution de mon problème.
    S'il existe une façon plus simple d'afficher les résultats d'une recherche et de sélectionner un élément pour le retourner dans la TextBox, pourquoi pas.

    Merci d'avance pour votre aide.

  2. #2
    Membre actif Avatar de ToshiroSama
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2010
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2010
    Messages : 77
    Par défaut
    Quand tu click sur le LinkButton, redirige ton navigateur vers Page1.aspx
    avec des paramètres en Get par exemple.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Response.Redirect("~\Page1.aspx?text="+LinkButtonx.Text);
    Dans la Page1, la méthode Load. ajoutes un bloc If pour tester si le paramètre ( en Get ) text n'est pas null. après si il est là tu le récupère pour l'afficher dans ton TextBox1.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    if(Request.Params["text"] && !String.IsNullOrEmpty(.Params["text"]))
    {
    TextBox1.Text = Request.Params["text"];
    }
    else
    {
    // TODO : le lancement direct de la page1, au début par exemple... 
    TextBox1.Text = String.Empty;
    }

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2011
    Messages : 10
    Par défaut
    Merci de ta réponse!

    J'essaye d'intégrer ça à mon application...

    Question1: où suis-je sensé mettre la fonction Response.Redirect() ?
    Jusqu'à maintenant, j'ai essayé d'affecter un script à la propriété OnClick, et j'ai mis le script dans Page2.aspx, mais je ne suis pas certain que ce soit correct.
    Voici des extraits de mon code:

    Dans Page2.aspx.cs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
            protected void Page_Load(object sender, EventArgs e)
            {
                foreach (Operations op in Redacteur.result)
                {
                    LinkButton link = new LinkButton();
                    PlaceHolder1.Controls.Add(link);
                    link.Text = op.Libelle;
                    PlaceHolder1.Controls.Add(new LiteralControl("<br/><br/>"));
                    link.OnClientClick = "script1()";
                }
            }
    Dans Page2.aspx :
    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
     
     
    body>
        <form id="form1" runat="server">
        <div>
            <asp:PlaceHolder ID="PlaceHolder1" runat="server"></asp:PlaceHolder>
        </div>
        </form>
        <script type="text/javascript">
            function script1() 
            {
                window.close();
                Response.Redirect("~\Redacteur.aspx?text=" + link.Text);
            }
        </script>
    </body>

    Question2: l'instruction if ne semble pas être correcte, notamment à cause du !String.IsNullOrEmpty(.Params["text"])...
    Est-ce que cela risque de fonctionner si je remplace par ce qui suit?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(String.IsNullOrEmpty(Request.Params["text"]))
    Merci de ton aide!

  4. #4
    Membre actif Avatar de ToshiroSama
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2010
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2010
    Messages : 77
    Par défaut
    Alors pour le response.redirect dans ton cas il doit figurer dans le script mais il va falloir trouver l'équivalent en JavaScript pour rediriger le navigateur vers une autre page...

    pour le If, peut être qu'il faut ajouter ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(Request.Params["text"] != null && !String.IsNullOrEmpty(.Params["text"]) == false)
    ou encore

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(String.IsNullOrEmpty(Request.Params["text"]))
    mais là il faut inverser le contenu du If et du Else, le if serait le passage direct sans paramètres Get. et le else serait le passage avec paramètres Get

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2011
    Messages : 10
    Par défaut
    Merci.

    En fait ça ne m'arrange pas d'utiliser ce script en JavaScript.
    Je préfèrerais utiliser une méthode dans le codebehind et utiliser le Response.Redirect, mais je ne sais pas comment appeler cette méthode avec le clic sur le ButtonClick.

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2011
    Messages : 10
    Par défaut
    J'arrive maintenant à appeler ma méthode grâce à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    link.Click += new EventHandler(this.LinkButton_Click);
    Au clic sur mon LinkButton, la Page1 s'ouvre dans la même fenêtre avec le texte passé en paramètres dans ma TextBox, donc ça a l'air cool.

    Cependant, ma Page1 était déjà ouverte dans la première fenêtre et ce que je veux c'est l'actualiser (ou mieux actualiser seulement la TextBox) et non en réouvrir une autre...

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

Discussions similaires

  1. [AJAX] Bouton modifier envois sur une autre page
    Par menzeli dans le forum AJAX
    Réponses: 1
    Dernier message: 24/03/2010, 16h52
  2. Modifier une page PHP depuis une autre page
    Par Pineurne dans le forum Langage
    Réponses: 4
    Dernier message: 10/01/2010, 10h36
  3. Réponses: 1
    Dernier message: 11/02/2009, 06h33
  4. Appel d' une autre page via un "OnMouveOver"
    Par MaxAntoine1 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 22/06/2008, 20h27
  5. Réponses: 7
    Dernier message: 13/12/2005, 16h22

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