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

C# Discussion :

(object sender, EventArgs e) ajout d'un autre paramètre ?


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Janvier 2011
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 37
    Par défaut (object sender, EventArgs e) ajout d'un autre paramètre ?
    Bonjour à tous,

    Je suis actuellement confronté à une problématique de type : passage de paramètre lors de l'appelle de procédure sur un évènement "CheckedChanged".

    Par défaut voici la procédure :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    protected void chkBoxOne_CheckedChanged(object sender, EventArgs e)
    {
     
    }
    Je souhaiterai savoir s'il est possible d'ajouter un paramètre supplémentaire du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    protected void chkBoxOne_CheckedChanged(object sender, EventArgs e, int id_salarie_fav)
    {
     
    }
    Ça à l'air de fonctionner mais mon vrai problème c'est plutôt comment appeler cette procédure ?

    J'ai essayé ceci mais ça ne fonctionne pas.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    CheckedChanged=chkBoxOne_CheckedChanged(,,1)
    Il me dit "Argument manquant". J'ai essayé "","" mais il me dit "Argument non valide" donc je suis un peu bloqué avec ce "sender" et ce "e"

    Si quelqu'un pouvait m'aider dans cette démarche je lui en serai très reconnaissant.

    Merci pour vos éventuelles réponses.
    Cordialement
    M0nk'

  2. #2
    Membre Expert
    Avatar de Sehnsucht
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2008
    Messages
    847
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Octobre 2008
    Messages : 847
    Par défaut
    Bonjour,

    les gestionnaires d'évènement doivent avoir une signature correspondante à l'évènement auxquels ils sont rattachés, donc tu ne pourra pas procéder comme tu le souhaites (et puis comment veux-tu que le checkbox sache quelle valeur passer à ce nouveau paramètre ?)

    Cordialement !

  3. #3
    Membre averti
    Inscrit en
    Janvier 2011
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 37
    Par défaut
    Salut Sehnsucht,

    comment veux-tu que le checkbox sache quelle valeur passer à ce nouveau paramètre ?
    Dans ce que j'essayai de faire ce n'était pas la checkbox qui passait un paramètre, elle elle le recevait.


    Aurais-tu dans ce cas une piste qui pourrait m'aiguiller ?

    Je re-explique clairement mon problème :
    Lors du check (true ou false) d'une checkbox je souhaiterai exécuter une procédure mais j'ai besoin de récupérer l'id de la ligne que j'ai checké. Pour ça il faudrait que j'appel ma procédure CheckedChanged en passant un paramètre.
    En image : http://cjoint.com/12oc/BJfiTQ7m55W.htm

    Merci

  4. #4
    Membre Expert
    Avatar de GuruuMeditation
    Homme Profil pro
    .Net Architect
    Inscrit en
    Octobre 2010
    Messages
    1 705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : .Net Architect
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 705
    Par défaut
    Il va falloir que tu stockes les données que tu veux quelque part, pour que la méthode CheckedChanged puisse y avoir accès.

    Une autre solution serait de faire un contrôle maison hérité de checkbox. Avec ça tu pourras faire ton propre EventArg qui peut contenir ce que tu veux.

  5. #5
    Membre Expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2009
    Messages
    2 056
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2009
    Messages : 2 056
    Par défaut
    Le tableau que l'on voit, c'est construit dynamiquement ou à la main?
    C'est quel technologie? (Wpf, winform?Asp?).
    Si c'est fait à la main, tu peux toujours utiliser le Tag de la checkbox pour y ajouter ta valeur(ou bien l'objet parent pour avoir accés à plus de truc).
    Pour le récupérer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    int valeur=(int)((CheckBox)sender).Tag
    (tu peux rajouter des verifications de type pour plus de sécurité).

    En fait selon ce que tu utilises pour faire ton tableau tu peux avoir des solutions différentes, il faut plus de détails

  6. #6
    Membre averti
    Inscrit en
    Janvier 2011
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 37
    Par défaut
    Bonjour à tous,

    C'est quel technologie? (Wpf, winform?Asp?)
    C#/ASP.NET/JavaScript(pour la mise ne forme)

    Chargement du tableau :
    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
    19
    20
    21
    22
    23
     
    Liste_Donnees annuaire = new Liste_Donnees();
    annuaire.annuaire();
    for (int i = 0; i < annuaire.Dt.Rows.Count; i++)
    {
                    DataRow dr = annuaire.Dt.Rows[i];
                    HtmlTableRow tr = new HtmlTableRow();
                    this.AddTd(dr["Id_Personne"].ToString(), tr);
                    this.AddTd(dr["Nom"].ToString(), tr);
                    this.AddTd(dr["Prenom"].ToString(), tr);
                    this.AddTd(dr["Numero"].ToString(), tr);
     
                    HtmlTableCell td = new HtmlTableCell();
                    CheckBox chkBoxOne = new CheckBox();
                    chkBoxOne.ID = "chkOne_" + dr["Id_Personne"].ToString();
                    chkBoxOne.AutoPostBack = true;
                    chkBoxOne.EnableViewState = true;
                    chkBoxOne.CheckedChanged += new EventHandler(chkBoxOne_CheckedChanged);
                    td.Controls.Add(chkBoxOne);
                    tr.Cells.Add(td);
     
                    this.t_annuaire.Controls.Add(tr);
    }

Discussions similaires

  1. [Objective C] Accès à une variable d'un autre objet
    Par Bababilou dans le forum Objective-C
    Réponses: 2
    Dernier message: 24/07/2009, 16h30
  2. Identifier "object sender"
    Par koyot3 dans le forum Windows Forms
    Réponses: 5
    Dernier message: 27/10/2008, 17h42
  3. ajout d'un autre Raid
    Par hicham106 dans le forum Windows Serveur
    Réponses: 3
    Dernier message: 11/03/2008, 20h10
  4. object^ sender c++.net
    Par TrollTop dans le forum VC++ .NET
    Réponses: 1
    Dernier message: 08/07/2007, 10h03
  5. valeur d'un champ de formulaire ajouté depuis une autre page
    Par manaboko dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 01/12/2005, 09h29

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