begin process at 2012 05 28 02:02:05
  Trouver un code source :
 
dans
 
Accueil > Forum > 

ASP.NET

 > 

Divers

 > 

Autre

 > 

Problème d'insertion dans un GridView


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Problème d'insertion dans un GridView

mercredi 5 mai 2010 à 11:45:36 | Problème d'insertion dans un GridView

k2lic2

Bonjour,

Je suis débutant en ASP .NET et j'ai un problème.

J'ai une page internet avec un GridView relié à une base de données et un boutton.

Dans le code behind du boutton (en C#), j'ai ajouté plusieurs colonne dynamiquement. Puis je voudrais ajouter des valeurs pour certaines lignes et colonnes.

Voici le code pour créer les colonnes et ajouter les valeurs:

BoundField bf = new BoundField();
bf.HeaderText = "test";
gridview.Columns.Add(bf);


gridview.Rows[i].Cells[j].Text = "test";

Le code compile mais rien n'est affiché sur le site.

Si vous avez des idées...
Merci
vendredi 7 mai 2010 à 10:59:52 | Re : Problème d'insertion dans un GridView

pierrehenri56

Bonjour,

ton code fonctionnera mieux si tu recharge ta grid

ajoute un
Code C# :
gridView.DataBind();
après ton
Code C# :
gridview.Columns.Add(bf); 


Tiens moi au courant
vendredi 7 mai 2010 à 16:58:04 | Re : Problème d'insertion dans un GridView

k2lic2

Bonjour,

Tout d'abord, merci de ta réponse.

Par contre, je me suis mal exprimé: les colonnes crées s'affichent mais c'est le texte que je souhaite ajouter dedans après qui ne s'affiche pas.

J'ai essayé de recharger le gridview avec ta méthode, après avoir ajouté le texte mais ça ne marche toujours pas.

Si tu as d'autres idées...

Merci
lundi 10 mai 2010 à 14:19:22 | Re : Problème d'insertion dans un GridView

pierrehenri56

Bonjour,

envoyer votre code si vous voulez, je pense que vous avez appelé votre méthode dans le load de votre page.

Merci
mardi 11 mai 2010 à 09:49:11 | Re : Problème d'insertion dans un GridView

k2lic2

Voila le code de la page:

Code ASP.NET :
<asp:GridView ID="GridView1" runat="server" DataSourceID="SqlDataSource1" 
AutoGenerateColumns="false" CellPadding="4" AutoPostBack="true" 
ForeColor="#333333" GridLines="None">
    <RowStyle BackColor="#EFF3FB"/>
    <Columns>
        <asp:BoundField DataField="Outil_reporting_fr" HeaderText="Outil de reporting" 
        SortExpression="Outil_reporting_fr" />
        <asp:BoundField DataField="Domaine_fr" HeaderText="Domaine" 
        SortExpression="Domaine_fr"  />
        <asp:BoundField DataField="Libelle_phase_fr" HeaderText="Libellé" 
        SortExpression="Libelle_phase_fr" />
        <asp:BoundField DataField="code_phase_fr" HeaderText="Code" 
        SortExpression="code_phase_fr" />
    </Columns>
    <FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
    <PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
    <SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
    <HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
    <EditRowStyle BackColor="#2461BF" />
    <AlternatingRowStyle BackColor="White" />
</asp:GridView>


Et voici le code behind en C# :

Code C# :
protected void Button1_Click(object sender, EventArgs e)
{
    // Déclaration de l'objet de connexion
    System.Data.SqlClient.SqlConnection oConnection = new System.Data.SqlClient.SqlConnection();

    // Ecriture de la chaîne de connexion
    string sConnectionString = "Server=test2;Initial Catalog=test;uid=****;password=****";
    oConnection.ConnectionString = sConnectionString;

    Button b = (Button)sender;
        
    ContentPlaceHolder c = (ContentPlaceHolder)b.Parent;

    GridView g = (GridView)c.FindControl("GridView1");

    Table t = (Table)c.FindControl("table1");

    DropDownList listeDesAnnee = (DropDownList)t.Rows[0].Cells[1].FindControl("DropDownList1");
    string Id_annee = listeDesAnnee.SelectedValue;

    DropDownList listeDesMois = (DropDownList)t.Rows[0].Cells[3].FindControl("DropDownList2");
    string Id_mois = listeDesMois.SelectedValue;

    try
    {
        // Ouverture de la connexion
        oConnection.Open();

        // Traitement des opération à effectuer sur la base de données
        SqlCommand sqlCommand1 = new SqlCommand();
        sqlCommand1.Connection = oConnection;
        sqlCommand1.CommandText = "SELECT A.Annee, C.Id_mois, count(C.id_calendrier) FROM CALENDRIER_CALENDRIER C INNER JOIN CALENDRIER_ANNEE A ON A.Id_annee = C.Id_annee WHERE C.id_mois = " + Id_mois + " and C.id_annee = " + Id_annee + " Group BY C.Id_mois, C.Id_annee, A.Annee";
        SqlDataReader data_mois_annee = sqlCommand1.ExecuteReader();
        int Annee, Mois, nb_ligne;

        if (data_mois_annee.Read())
        {
            Annee = (int)data_mois_annee.GetSqlInt32(0);
            Mois = (int)data_mois_annee.GetSqlInt32(1);
            nb_ligne = (int)data_mois_annee.GetSqlInt32(2);
        }
        else
        {
            Annee = 0;
            Mois = 0;
            nb_ligne = 0;
        }
        data_mois_annee.Dispose();

        if (Annee != 0 && Mois != 0)
        {
            while (g.Columns.Count != 4)
            {
                g.Columns.RemoveAt(4);
            }
            int nb_jour_mois = DateTime.DaysInMonth(Annee, Mois);
            for (int i = 0; i < nb_jour_mois; i++)
            {
                BoundField bf = new BoundField();

                DateTime d = new DateTime(Annee, Mois, i + 1);
                string jour = d.DayOfWeek.ToString();

                if (jour.Equals("Monday"))
                {
                    bf.HeaderText = (i + 1).ToString() + "\n Lu";
                    g.Columns.Add(bf);
                }
                else if (jour.Equals("Tuesday"))
                {
                    bf.HeaderText = (i + 1).ToString() + "\n Ma";
                    g.Columns.Add(bf);
                }
                else if (jour.Equals("Wednesday"))
                {
                    bf.HeaderText = (i + 1).ToString() + "\n Me";
                    g.Columns.Add(bf);
                }
                else if (jour.Equals("Thursday"))
                {
                    bf.HeaderText = (i + 1).ToString() + "\n Je";
                    g.Columns.Add(bf);
                }
                else if (jour.Equals("Friday"))
                {
                    bf.HeaderText = (i + 1).ToString() + "\n Ve";
                    g.Columns.Add(bf);
                }
                else if (jour.Equals("Saturday"))
                {
                    bf.HeaderText = "";
                    g.Columns.Add(bf);
                }
                else if (jour.Equals("Sunday"))
                {
                    bf.HeaderText = "";
                    g.Columns.Add(bf);
                }
                else
                {
                    bf.HeaderText = (i + 1).ToString() + "\n Erreur";
                    g.Columns.Add(bf);
                }
            }
            // Traitement des opération à effectuer sur la base de données
            SqlCommand sqlCommand3 = new SqlCommand("SELECT CA.Jour_debut, CA.Jour_fin, C.Code_phase_fr FROM CALENDRIER_CALENDRIER CA INNER JOIN CALENDRIER_LIEN_TABLE LT ON CA.Id_lien_table = LT.Id_lien_table INNER JOIN CALENDRIER_CODE C ON LT.Id_code = C.Id_code WHERE CA.Id_mois = " + Id_mois + " AND CA.id_annee = " + Id_annee, oConnection);
            SqlDataReader data_jour = sqlCommand3.ExecuteReader();

            int[] Jour_debut = new int[nb_ligne];
            int[] Jour_fin = new int[nb_ligne];
            string[] Code = new string[nb_ligne];

            int cpt = 0;

            while (data_jour.Read())
            {
                Jour_debut[cpt] = (int)data_jour.GetSqlInt32(0);
                Jour_fin[cpt] = (int)data_jour.GetSqlInt32(1);
                Code[cpt] = (string)data_jour.GetSqlString(2);

                cpt++;
            }
            data_jour.Dispose();

            for (int i = 0; i < nb_ligne; i++)
            {
                for (int j = 0; j < cpt; j++)
                {
                    if (g.Rows[i].Cells[3].Text.Equals(Code[j]))
                    {
                        int cpt2 = Jour_debut[j] + 4;
                        do
                        {
                            g.Rows[i].Cells[cpt2].Text = "X";
                            cpt2++;
                        }
                        while (cpt2 != Jour_fin[j] + 5);
                        g.DataBind();
                    }
                }
            }
        }
        oConnection.Close();
    }
    catch (System.Exception ex)
    {
    }
}


Comme je l'ai dit plus haut, je suis débutant en aspx.net et en C#. Je viens de commencer. C'est pourquoi mon code n'est peut être pas la meilleure façon de faire.

Ce que je dois obtenir, c'est un calendrier qui montre les différentes phases de projet pour chaque mois (par exemple en juin, le projet 1 va durer du premier au trois, dans ce cas, on fera apparaitre les 'X' dans les trois cases correspondantes).
Les projets ainsi que leur durée sont contenus dans une base de données sqlServer 2005. Le framework que j'utilise est le 3.5.

Voila, j'espère avoir été clair. Si vous avez besoin d'autres informations sur le projet, faites le moi savoir.

Merci de votre aide.
mercredi 12 mai 2010 à 12:28:10 | Re : Problème d'insertion dans un GridView

k2lic2

Réponse acceptée !
Salut,

J'ai réussi à trouver le problème. En fait le databind doit être placé avant l'écriture dans le gridview.

Merci à tous ceux qui se penchés sur le problème.


Cette discussion est classée dans : problème, code, insertion, gridview, bf


Répondre à ce message

Sujets en rapport avec ce message

Problème d' UpdatePanel dans un autre UpdatePanel [ par stephsk09 ] Bonjour, après plusieurs essai je me tourne vers vous. J'ai un problème qui me casse la tête depuis maintenant 3 jours et je ne trouve pas de solutio Changer Requete sqldatasource gridview avec dropdownlist [ par ceinoxe ] Bonjour, Dans mon application web ASP.Net, j'ai une drowpdownlist avec différentes villes et un gridview avec plusieurs colonnes dont une colonne "VI Problème contrôle imbriquer [ par Wolfy29 ] Bonjour à tous ! Voila petit nouveau sur les forums d'aspfr qui débarque avec ( déjà ) avec un problème !! Et il me bloque depuis plusieurs jours. [^^ Problème d'enregistrement de variables de session [ par jmmontes ] Bonjour, J'ai un site installé sur un ordinateur Windows XP sur un domaine. Je m'y connecte de 2 manières sur le poste XP qui fait office de serveur Problème d'enregistrement de variables de session [ par jmmontes ] Bonjour, J'ai un site installé sur un ordinateur Windows XP sur un domaine. Je m'y connecte de 2 manières sur le poste XP qui fait office de serveur passage de variable [ par jantoine ] Bonjour, Je cherche de l'aide pour résoudre un problème rencontré dans un formulaire. - J'ai une base de donnée avec les villes et les code postaux. - Problème de requêtes SQL [ par sorachan26 ] Bonjour, j'ai deux tables une qui contient les informations sur l'employé et l'autre contient des incidents. J'ai besoin trouvé le numéro de l'employ Problème ASP - ORACLE [ par yosboss ] Bonjour, Je veux établir une connexion ASP avec une base de données ORACLE distante et puis exécuter des requêtes.. Je ne suis pas sûr de ce que j'a Problème avec fileupload [ par jonas87 ] Salut, j'ai en train de développer un site web, et j'ai mis ce code pour upload plusieurs fileuploads. mais le problème est que rien ne marche. et lor rafraichir gridview sans maj de maj de la base [ par profiter ] bonjour dans mon programme asp.net avec c# un boutton "refresh database" les enregistremenetsne ne s'effectuent que sur le datatable et la source de


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,655 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales