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 :

update une ligne de gridview sans passer par edit


Sujet :

ASP.NET

  1. #1
    Membre confirmé
    Inscrit en
    Mars 2009
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 100
    Par défaut update une ligne de gridview sans passer par edit
    salut.
    Je débute avec asp.net j'ai une gridview avec une colonne de bouton je cherchais à mettre à jour une ligne juste en cliquant sur le bouton lié à cette ligne (sans passer par edit mode ):parce que l'utilisateur n'a rien à taper et la valeur à modifier je la passe par une requête sql.

    merci

  2. #2
    Membre confirmé
    Inscrit en
    Mars 2009
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 100
    Par défaut valeur d'une cellule
    Salut
    Comment récuperer la valeur d'une cellule par RowCommand
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     GridViewRow rf =GridView1.Rows(e.CommandArgument);
                n1 = rf.Cells[0].Text ;
    fonctionne pas

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    187
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Octobre 2008
    Messages : 187
    Par défaut
    pseudo Essaye quelque chose comme ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
    {Button btn_update = e.CommandSource as Button;
            GridViewRow row = btn_update.NamingContainer as GridViewRow;
     
            if (row != null)
            {
              Label lb = row.FindControl("labelId") as Label ;
    ....

  4. #4
    Membre confirmé
    Inscrit en
    Mars 2009
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 100
    Par défaut
    J'ai pas compris : Button btn_update = e.CommandSource as Button;?

  5. #5
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par défaut
    Salut,
    Citation Envoyé par pseudo88 Voir le message
    Salut
    Comment récuperer la valeur d'une cellule par RowCommand
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     GridViewRow rf =GridView1.Rows(e.CommandArgument);
                n1 = rf.Cells[0].Text ;
    fonctionne pas
    Quelles sont les arguments que tu fais passer dans ta commande?

    A+
    "Winter is coming" (ma nouvelle page d'accueil)

  6. #6
    Membre confirmé
    Inscrit en
    Mars 2009
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 100
    Par défaut
    Salut!

    J'ai utilisé le code de badi3a82 (meme si je l''ai pas bien compris )
    mais [CODE]
    public void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
    {

    Button btn = e.CommandSource as Button;
    GridViewRow row = btn.NamingContainer as GridViewRow;

    if (row != null)
    {

    Label l1 = row.FindControl("id01") as Label;
    Label l2 = row.FindControl("id41") as Label;

    SqlConnection myConnection = new SqlConnection(ConnectionString);

    SqlCommand myCommand = new SqlCommand("PS_fa", myConnection);

    myCommand.CommandType = CommandType.StoredProcedure;

    myCommand.Parameters.Add(new SqlParameter("@CODE_fa", SqlDbType.VarChar, 4));

    myCommand.Parameters["@CODE_fa"].Value = l1.Text;
    myCommand.Parameters.Add(new SqlParameter("@CODE_pd", SqlDbType.VarChar, 4));

    myCommand.Parameters["@CODE_pd"].Value = l2.Text;

    myConnection.Open();

    myCommand.ExecuteNonQuery();

    myConnection.Close();
    GridView1.EditIndex = -1;


    BindData();
    }
    }[CODE]
    mais je ne peux pas selectionner une ligne de la grid quand je clique sur selectionner j'ai ce message:

    La référence d'objet n'est pas définie à une instance d'un objet.
    dans cette ligne
    merci de m'aider .

  7. #7
    Membre expérimenté Avatar de AJemni
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2008
    Messages
    242
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2008
    Messages : 242
    Par défaut
    Bonjour,
    chaque commande standard de GridView possède un CommandName(e.CommandName)
    -Selection : Select
    -Edition : Edit
    -Suppression : Delete
    -Mise à jour : Update
    -Annuler : Cancel

    Alor pour que ton code fonctionne bien ajoute un if :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    public void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
    {
            if (e.CommandName.ToUpper() != "SELECT")
            {
                 ...
            }
    }
    et si tu gére plusieurs commande dans la grille => plusieurs if ou un switch - case

    A+

  8. #8
    Membre confirmé
    Inscrit en
    Mars 2009
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 100
    Par défaut
    ça marche AJemni
    reste une seule chose ça sert à quoi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
                Button btn = e.CommandSource as Button;
                GridViewRow row = btn.NamingContainer as GridViewRow;
    ?merci

  9. #9
    Membre expérimenté Avatar de AJemni
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2008
    Messages
    242
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2008
    Messages : 242
    Par défaut
    Salut,
    ça sert à determiner d'abord le bouton sur laqu'elle tu a cliqué, puis de derminer le conteneur de ton boutton.

    et n'oublie pas d'ajouter

    A+

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 18/11/2012, 15h01
  2. Réponses: 8
    Dernier message: 03/06/2012, 19h12
  3. Acceder à une page ASP.NET sans passer par la case Login
    Par ehochedez dans le forum ASP.NET
    Réponses: 8
    Dernier message: 07/10/2010, 10h28
  4. Réponses: 5
    Dernier message: 24/08/2007, 15h42
  5. Réponses: 7
    Dernier message: 28/03/2007, 13h57

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