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

ADO.NET Discussion :

ajout dans GridView selon DropDownList


Sujet :

ADO.NET

  1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2011
    Messages : 21
    Points : 18
    Points
    18
    Par défaut ajout dans GridView selon DropDownList
    Salut,

    j'ai une DropDownList appelé "DDLnumpc" et une GridView appelé "Grd",lorsque je selectionne des numéro des pièces de DDLnumpc seule la dernière pièce sélectionné va étre affiché dans la GridView alors que je veux conserver les pièces précédement sélectionnés dans Grd
    voici le code:

    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
     protected void DDLnumpc_SelectedIndexChanged(object sender, EventArgs e)
            {
                SqlConnection cn = new SqlConnection();
                DataSet dtst = new DataSet();
                SqlDataAdapter adp = new SqlDataAdapter();
     
                cn.ConnectionString = "Data Source=amine;Initial Catalog=bdSPR;Integrated Security=True";
                cn.Open();
                SqlCommand com = new SqlCommand("select NumP,NatP,RibRip,NumCcmpt,LibP,dateP,NumT,numfact,mntp,ModP,NumVt,NumCh,NumSt from PieceComptable where NumP='"+DDLnumpc.SelectedValue+"'", cn);
                adp.SelectCommand=com;
                adp.Fill(dtst,"PieceComptable");
                Grd.DataSource = dtst.Tables[0];
                Grd.DataBind();
     
            }
    quelqu'un peut m'aider et merci d'avance

  2. #2
    Membre régulier

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Novembre 2004
    Messages : 64
    Points : 107
    Points
    107
    Par défaut
    Voilà la démarche:

    1. On execute la requête SQL et on boucle sur les éléments retournés
    2. Pour chaque élément (donc dans la boucle), on crée une nouvelle ligne


    Exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    DataRow anyRow = DatasetName.ExistingTable.NewRow();
    anyRow.FirstName = "Jay";
    anyRow.LastName = "Stevens";
    ExistingTable.Rows.Add(anyRow);

    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
    protected void DDLnumpc_SelectedIndexChanged(object sender, EventArgs e)
            {
                SqlConnection cn = new SqlConnection();
                DataSet dtst = new DataSet();
                SqlDataAdapter adp = new SqlDataAdapter();
     
                cn.ConnectionString = "Data Source=amine;Initial Catalog=bdSPR;Integrated Security=True";
                cn.Open();
                SqlCommand com = new SqlCommand("select NumP,NatP,RibRip,NumCcmpt,LibP,dateP,NumT,numfact,mntp,ModP,NumVt,NumCh,NumSt from PieceComptable where NumP='"+DDLnumpc.SelectedValue+"'", cn);
                /*adp.SelectCommand=com;
                adp.Fill(dtst,"PieceComptable");*/
                Grd.DataSource = dtst.Tables[0];
                Grd.DataBind();
     
            }

  3. #3
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2011
    Messages : 21
    Points : 18
    Points
    18
    Par défaut
    voila ce que j'ai fait:

    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
    24
    25
    26
    protected void DDLnumpc_SelectedIndexChanged(object sender, EventArgs e)
            {
                SqlConnection cn = new SqlConnection();
                SqlDataAdapter adp;
                SqlCommand com = new SqlCommand();
                DataSet dtst = new DataSet();
                int i;
                cn.ConnectionString = "Data Source=amine;Initial Catalog=bdSPR;Integrated Security=True";
                cn.Open();
                com.CommandText=("select NumP,NatP,RibRip,NumCcmpt,LibP,dateP,NumT,numfact,mntp,ModP,NumVt,NumCh,NumSt from PieceComptable where NumP='"+DDLnumpc.SelectedValue+"'");
                com.Connection = cn;
     
                adp = new SqlDataAdapter(com);
                adp.Fill(dtst,"PieceComptable");
     
                DataRow dtr = dtst.Tables[0].NewRow();
                dtr.NumP = dtst.Tables[0].Rows[i][0];
                dtr.NatP = dtst.Tables[0].Rows[i][1];
                dtr.RibRip = dtst.Tables[0].Rows[i][2];
                ...
                dtst.Tables[0].Rows.Add(dtr);
     
                Grd.DataSource = dtst.Tables[0];
                Grd.DataBind();
                i++;
            }
    mais un erreur est survenu au niveau de:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    dtr.NumP = dtst.Tables[0].Rows[i][0];
                dtr.NatP = dtst.Tables[0].Rows[i][1];
                dtr.RibRip = dtst.Tables[0].Rows[i][2];

    l'erreur est:

    'System.Data.DataRow' ne contient pas une définition pour 'NatP' et aucune méthode d'extension 'NatP' acceptant un premier argument de type 'System.Data.DataRow' n'a été trouvée
    (une directive using ou une référence d'assembly est-elle manquante*?)

  4. #4
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2011
    Messages : 21
    Points : 18
    Points
    18
    Par défaut
    j'ai essayé d'utiliser une datatable et voici le code:

    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    DataTable dt = new DataTable();     
     
            protected void Page_Load(object sender, EventArgs e)
            {
                dt.Clear();
                dt.Columns.Add("NumP");
                dt.Columns.Add("NatP");
                dt.Columns.Add("RibRip");
                dt.Columns.Add("NumCcmpt");
                dt.Columns.Add("LibP");
                dt.Columns.Add("dateP");
                dt.Columns.Add("NumT");
                dt.Columns.Add("numfact");
                dt.Columns.Add("mntp");
                dt.Columns.Add("ModP");
     
            }
     
            protected void DDLnumpc_SelectedIndexChanged(object sender, EventArgs e)
            {
                SqlConnection cn = new SqlConnection();
                SqlDataAdapter adp;
                SqlCommand com = new SqlCommand();
                DataSet dtst = new DataSet();
     
                cn.ConnectionString = "Data Source=amine;Initial Catalog=bdSPR;Integrated Security=True";
                cn.Open();
                com.CommandText=("select NumP,NatP,RibRip,NumCcmpt,LibP,dateP,NumT,numfact,mntp,ModP,NumVt,NumCh,NumSt from PieceComptable where NumP='"+DDLnumpc.SelectedValue+"'");
                com.Connection = cn;
                adp = new SqlDataAdapter(com);
                adp.Fill(dtst,"PieceComptable");
     
     
                DataRow dtr = dt.NewRow();
                dtr[0] = dtst.Tables[0].Rows[0][0];
                dtr[1] = dtst.Tables[0].Rows[0][1];
                dtr[2] = dtst.Tables[0].Rows[0][2];
                dtr[3] = dtst.Tables[0].Rows[0][3];
                dtr[4] = dtst.Tables[0].Rows[0][4];
                dtr[5] = dtst.Tables[0].Rows[0][5];
                dtr[6] = dtst.Tables[0].Rows[0][6];
                dtr[7] = dtst.Tables[0].Rows[0][7];
                dtr[8] = dtst.Tables[0].Rows[0][8];
                dtr[9] = dtst.Tables[0].Rows[0][9];
     
                dt.Rows.Add(dtr);
                Grd.DataSource = dt;
                Grd.DataBind();                 
     
            }
    mais la Gridview persiste a afficher que la dernière valeur sélectionné du dropdownlist!!
    Merci de m'aider

  5. #5
    Membre éclairé Avatar de Ramajb
    Homme Profil pro
    ----------------------------
    Inscrit en
    Septembre 2007
    Messages
    476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ----------------------------

    Informations forums :
    Inscription : Septembre 2007
    Messages : 476
    Points : 755
    Points
    755
    Par défaut
    Citation Envoyé par touta89 Voir le message
    Salut,

    j'ai une DropDownList appelé "DDLnumpc" et une GridView appelé "Grd",lorsque je selectionne des numéro des pièces de DDLnumpc seule la dernière pièce sélectionné va étre affiché dans la GridView alors que je veux conserver les pièces précédement sélectionnés dans Grd
    voici le code:

    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
     protected void DDLnumpc_SelectedIndexChanged(object sender, EventArgs e)
            {
                SqlConnection cn = new SqlConnection();
                DataSet dtst = new DataSet();
                SqlDataAdapter adp = new SqlDataAdapter();
     
                cn.ConnectionString = "Data Source=amine;Initial Catalog=bdSPR;Integrated Security=True";
                cn.Open();
                SqlCommand com = new SqlCommand("select NumP,NatP,RibRip,NumCcmpt,LibP,dateP,NumT,numfact,mntp,ModP,NumVt,NumCh,NumSt from PieceComptable where NumP='"+DDLnumpc.SelectedValue+"'", cn);
                adp.SelectCommand=com;
                adp.Fill(dtst,"PieceComptable");
                Grd.DataSource = dtst.Tables[0];
                Grd.DataBind();
     
            }
    quelqu'un peut m'aider et merci d'avance
    Salut,
    Le plus simple c'est de garder l’état du gridview a chaque PostBack. Pour ça, il faut que tu arrives à stocker du côté serveur ou client la valeur du DataSet dernièrement utilisée. Par exemple, tu le sauvegardes dans une variable session: Au final, tu as un code similaire de ceci:
    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
    24
    25
    26
    27
    28
    29
    30
    31
     
    protected void DDLnumpc_SelectedIndexChanged(object sender, EventArgs e)
            {
                SqlConnection cn = new SqlConnection();
                DataSet dtst;
                SqlDataAdapter adp = new SqlDataAdapter();
     
                cn.ConnectionString = "Data Source=amine;Initial Catalog=bdSPR;Integrated Security=True";
                cn.Open();
                SqlCommand com = new SqlCommand("select NumP,NatP,RibRip,NumCcmpt,LibP,dateP,NumT,numfact,mntp,ModP,NumVt,NumCh,NumSt from PieceComptable where NumP='"+DDLnumpc.SelectedValue+"'", cn);
                adp.SelectCommand=com;
     
                if(Session[Ds]!= null)
                {
                    dtst = Session[Ds] as DataSet;
                    adp.Fill(dtst,"Table[1]");
                    //Merger les résultat de deux DataTable
                    dtst.Tables[0].Merge(dtst.Table[1]); 
                }
                else 
                {
                     dtst = new DataSet();
                     adp.Fill(dtst,"Table[0]");
                }           
     
                Grd.DataSource = dtst.Tables[0];
                Grd.DataBind();
     
                //Sauvergarder le nouveau dataset
                Session[Ds]=dtst;
            }
    J'ai pas testé ce code alors laisse moi savoir si tu as de souci.
    A+

  6. #6
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2011
    Messages : 21
    Points : 18
    Points
    18
    Par défaut
    j'ai mis ton code tel qu'il est..bon il affiche les détails du 1er élément, ensuite 2ém élément mais aprés il réaffiche des élément précédement séléctionné sans étre resélectionné! Bon j'explique..

    par exemple:j'ai sélectionné les numéros des pièces suivantes:11/12/13/14
    la GridView a affiché les détails des pièces suivantes:11/12/12/13/12/13/14

  7. #7
    Membre éclairé Avatar de Ramajb
    Homme Profil pro
    ----------------------------
    Inscrit en
    Septembre 2007
    Messages
    476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ----------------------------

    Informations forums :
    Inscription : Septembre 2007
    Messages : 476
    Points : 755
    Points
    755
    Par défaut
    Modifie ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    dtst = Session[Ds] as DataSet;
    adp.Fill(dtst,"Table[1]");
    //Merger les résultat de deux DataTable
    dtst.Tables[0].Merge(dtst.Tables[1]);
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    dtst = Session[Ds] as DataSet;
    DataTable temp = dtst.Tables[0].Clone();
    adp.Fill(temp);
    //Merger les résultat de deux DataTable
    dtst.Tables[0].Merge(temp);
    A+

  8. #8
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2011
    Messages : 21
    Points : 18
    Points
    18
    Par défaut Remerciement
    merci bien pour tout

    ça marche..voila le code

    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
    24
    25
    26
    27
    28
    29
    30
    protected void DDLnumpc_SelectedIndexChanged(object sender, EventArgs e)
            {
                SqlConnection cn = new SqlConnection();
                DataSet dtst;
                SqlDataAdapter adp = new SqlDataAdapter();
     
                cn.ConnectionString = "Data Source=amine;Initial Catalog=bdSPR;Integrated Security=True";
                cn.Open();
                SqlCommand com = new SqlCommand("select NumP,NatP,RibRip,NumCcmpt,LibP,dateP,NumT,numfact,mntp,ModP,NumVt,NumCh,NumSt from PieceComptable where NumP='" + DDLnumpc.SelectedValue + "'", cn);
                adp.SelectCommand = com;
     
                if (Session["Ds"] != null)
                {
                    dtst = Session["Ds"] as DataSet;
                    DataTable temp = dtst.Tables[0].Clone();
                    adp.Fill(temp);               
                    dtst.Tables[0].Merge(temp);
                }
                else
                {
                    dtst = new DataSet();
                    adp.Fill(dtst, "Table[0]");
                }
     
                Grd.DataSource = dtst.Tables[0];
                Grd.DataBind();
                Session["Ds"] = dtst; 
     
     
            }

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

Discussions similaires

  1. TextBox dans un Gridview bindé selon DropDownList
    Par yonel42 dans le forum ASP.NET
    Réponses: 1
    Dernier message: 16/09/2014, 15h08
  2. Réponses: 4
    Dernier message: 17/09/2008, 18h05
  3. Ajout de colonne 'Action' dans GridView
    Par Elwe31 dans le forum ASP.NET
    Réponses: 1
    Dernier message: 10/06/2008, 11h10
  4. ajouter ligne dans gridview
    Par abdelmajid_daosabah dans le forum ASP.NET
    Réponses: 1
    Dernier message: 07/05/2008, 10h43
  5. Réponses: 9
    Dernier message: 21/09/2007, 14h33

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