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 :

[ASP.NET][C#2] Ajout d'un dropdownlist dans un gridview


Sujet :

ASP.NET

  1. #1
    Nouveau membre du Club
    Inscrit en
    Février 2006
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 47
    Points : 31
    Points
    31
    Par défaut [ASP.NET][C#2] Ajout d'un dropdownlist dans un gridview
    Bonjour a tous,

    alors mon probleme est que j'ai un gridview dans lequel je souhaite ajouter une
    colonne uniquement avec des dropdownlists que j'alimenterais ulterieurement.

    Etant debutant je n'arrive deja pas a insérer un dropdownlist dans un gridview
    parce que mon prédécesseur a utiliser comme source de données un datatable
    En gros voila ce que ca donne

    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
     
    DataTable dt = new DataTable();
            DataRow dr;
     
            dt.Columns.Add(new DataColumn("numeroQCM", typeof(String)));
            dt.Columns.Add(new DataColumn("libelle", typeof(String)));
            dt.Columns.Add(new DataColumn("supprimer", typeof(String)));
            dt.Columns.Add(new DataColumn("id", typeof(long)));
            dt.Columns.Add(new DataColumn("libelleComplet", typeof(String)));
     
     
            for (int i = 0; i < listeQCM.Length; i++)
            {
                 dr = dt.NewRow();
     
                dr[0] = i + 1;
     
                if (listeQCM[i].Libelle.Length > 60)
                {
                    dr[1] = listeQCM[i].Libelle.Substring(0, 60);
                }
                else
                {
                    dr[1] = listeQCM[i].Libelle;
                }
                dr[2] = pageAjouterQuestion_texte_supprimer;
     
                dr[3] = listeQCM[i].Id;
     
                dr[4] = listeQCM[i].Libelle;
     
                dt.Rows.Add(dr);
            }
     
            DataView dv = new DataView(dt);
            String[] keys = { "numeroQCM", "libelle", "supprimer", "id", "libelleComplet"};
            gv_pageAjouterQuestion_QCM.DataKeyNames = keys;
            gv_pageAjouterQuestion_QCM.DataSource = dv;
            gv_pageAjouterQuestion_QCM.DataBind();
    Je voudrais donc savoir comment je peux ajouter des dropdownlists a mon gridview de maniere à ce que je puisse les alimenter et récupérer les différentes sélection de chacun

    Merci d'avance pour votre aide

  2. #2
    Membre habitué
    Inscrit en
    Octobre 2005
    Messages
    194
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 194
    Points : 158
    Points
    158
    Par défaut
    Bonjour,
    Par code je ne sais pas comment le faire,
    mais en mode design c'est assez simple:
    1- tu convertis les colonnes de ta GridView en "TemplateField" (colonne modale);
    2- ensuite, pour chaque colonne, tu as deux "mode" de template à modifier:
    a - ItemTemplate: qui permet l'afichage (en consultation) de tes données.
    b - EditItemTemplate : qui permet la modification des tes donnée.
    dans chacun de ces deux mode de template, tu peux inserer dans la cellule le composant que tu veux, entre autres une DropDownList.

    J'espère que j'étais claire.

    Happy programming

  3. #3
    Nouveau membre du Club
    Inscrit en
    Février 2006
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 47
    Points : 31
    Points
    31
    Par défaut Merci
    Merci beaucoup,

    c'est deja un premier element de réponse,
    mais dans l'application tout est fait en dynamique, ca m'aiderais beaucoup plus
    si j'avais un exemple de code.
    Je vais commencer par un jeter un coup d'oeil du coté du templatefied.

    Merci :-)

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    103
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 103
    Points : 48
    Points
    48
    Par défaut
    <asp:TemplateField>
    <ItemTemplate>
    <asp:Label ID="lbl" runat="server" />
    </ItemTemplate>
    <EditItemTemplate>
    <asp:dropdownlist ID="ddl" runat="server" />
    </EditItemTemplate>
    </asp:TemplateField>

    je pense que tu peux utiliser ce code

  5. #5
    Nouveau membre du Club
    Inscrit en
    Février 2006
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 47
    Points : 31
    Points
    31
    Par défaut Neant
    Non malheureusement dans l'application que je dois faire evoluer tout se passe dans le code behind comme vous pouvez le voir dans l'extrait que j'ai posté

  6. #6
    Membre régulier
    Inscrit en
    Décembre 2005
    Messages
    67
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Décembre 2005
    Messages : 67
    Points : 77
    Points
    77
    Par défaut
    Tu as bien dans ton code aspx le controle gv_pageAjouterQuestion_QCM ?

    Tu peux mettre le code que tu as <asp:gridview ....> à </asp:gridview> ?

  7. #7
    Nouveau membre du Club
    Inscrit en
    Février 2006
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 47
    Points : 31
    Points
    31
    Par défaut Partie asp
    Voila

    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
     
                    <asp:GridView ID="gv_pageAjouterQuestion_QCM" BackColor="Snow" BorderColor="Silver" BorderStyle="Solid" runat="server" AutoGenerateColumns="False" OnRowCommand="gv_pageAjouterQuestion_QCM_RowCommand" OnRowDeleting="gv_pageAjouterQuestion_QCM_RowDeleting">
                        <Columns>
                            <asp:BoundField DataField="numeroQCM" HeaderText="N°">
                            <HeaderStyle BackColor="Silver" BorderColor="Silver" Font-Size="10pt" Font-Underline="True" ForeColor="Black" Width="50px" HorizontalAlign="Center" />
                            <ControlStyle BorderColor="Silver" Width="20px" />
                            <ItemStyle BorderColor="Silver" Font-Names="Arial" Font-Size="11pt" ForeColor="Black" Height="30px" HorizontalAlign="Center" VerticalAlign="Middle" />
                            </asp:BoundField>
     
                            <asp:ButtonField CommandName="modifierLibelleChoix" DataTextField="libelle">
                            <HeaderStyle BackColor="Silver" BorderColor="Silver" Font-Size="10pt" Font-Underline="True" ForeColor="Black" Width="410px" HorizontalAlign="Center" />
                            <ControlStyle BorderColor="Silver" Width="410px" />
                            <ItemStyle BorderColor="Silver" Font-Names="Arial" Font-Size="11pt" ForeColor="Black" Height="30px" HorizontalAlign="Left" VerticalAlign="Middle" />
                            </asp:ButtonField>
     
                            <asp:ButtonField CommandName="supprimerLibelleChoix" DataTextField="supprimer">
                            <HeaderStyle BackColor="Silver" BorderColor="Silver" Width="120px" HorizontalAlign="Center" />
                            <ControlStyle BorderColor="Silver" Width="120px" />
                            <ItemStyle BorderColor="Silver" Font-Names="Arial" Font-Size="11pt" HorizontalAlign="Center" VerticalAlign="Middle" />
                            </asp:ButtonField>
     
     
                        </Columns>
                        <AlternatingRowStyle BackColor="LightCyan" />
                    </asp:GridView>
    J'espere que ca vous eclairera

    Une fois que les ddl sont ajouté ca serait gentil de m'indiquer comment récuperer les sélections pour chaque ligne de mon tableau .

    Merci d'avance

  8. #8
    Membre régulier
    Inscrit en
    Décembre 2005
    Messages
    67
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Décembre 2005
    Messages : 67
    Points : 77
    Points
    77
    Par défaut
    Donc danston code aspx :

    Juste avant tu met :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     <asp:TemplateField>
                      <itemtemplate>
                       <asp:DropDownList ID="maDDl" runat="server" ></asp:DropDownList>
                      </itemtemplate>
                    </asp:TemplateField>
    Avec ce code , ta dropdownlist sera tout le temps visible. Si tu utilise le mode Edition de la gridview, tu peux mettre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     <asp:TemplateField>
     <itemtemplate>
           <asp:label id="monLabel" runat="server"></asp:label>
     </itemtemplate>
     <editTemplate>
          <asp:DropDownList ID="maDDl" runat="server" ></asp:DropDownList>
     </editTemplate>
    </asp:TemplateField>

    Dit moi si tu arrive à avoir ta dropdownlist, et on vera plutard pour la remplir...

  9. #9
    Nouveau membre du Club
    Inscrit en
    Février 2006
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 47
    Points : 31
    Points
    31
    Par défaut Dropdownlist affiché
    C'est parfait la ddl s'affiche, j'ai reussi a la remplir avec une fontion qui renvoi une arraylist et que j'ai mis dans la propriété datasource de la ddl.

    Mais je n'arrive pas a récupérer les valeurs de selectionné de chaque ligne de la gridview.

    Est ce que vous pourriez m'orienter s'il vous plait

    Merci beaucoup

  10. #10
    Membre régulier
    Inscrit en
    Décembre 2005
    Messages
    67
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Décembre 2005
    Messages : 67
    Points : 77
    Points
    77
    Par défaut
    Si tu connais l'index de la ligne, sur laquelle se trouve la dropdownlist, tu peux faire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        DropDownList DDL = null;
        string maValeur="";
     
        if ( maGridView.Rows[indexDeLaLigne].FindControl("idDeMaDDL") != null && maGridView.Rows[indexDeLaLigne].FindControl("idDeMaDDL") is DropDownList )
        {
          DDL = (DropDownList) e.Row.FindControl("maDDl");
          maValeur = DDL.SelectedValue;
        }
    Voilà.

  11. #11
    Nouveau membre du Club
    Inscrit en
    Février 2006
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 47
    Points : 31
    Points
    31
    Par défaut Probleme alimentation Ddl
    Merci des que j'essaye je te dis ce qu'il en est.

    Alors apres modification voila ce que ca donne

    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
     
                    <asp:GridView ID="gv_pageAjouterQuestion_QCM" BackColor="Snow" BorderColor="Silver" BorderStyle="Solid" runat="server" AutoGenerateColumns="False" OnRowCommand="gv_pageAjouterQuestion_QCM_RowCommand" OnRowDeleting="gv_pageAjouterQuestion_QCM_RowDeleting">
                        <Columns>
                            <asp:BoundField DataField="numeroQCM" HeaderText="N°">
                            <HeaderStyle BackColor="Silver" BorderColor="Silver" Font-Size="10pt" Font-Underline="True" ForeColor="Black" Width="50px" HorizontalAlign="Center" />
                            <ControlStyle BorderColor="Silver" Width="20px" />
                            <ItemStyle BorderColor="Silver" Font-Names="Arial" Font-Size="11pt" ForeColor="Black" Height="30px" HorizontalAlign="Center" VerticalAlign="Middle" />
                            </asp:BoundField>
     
                            <asp:ButtonField CommandName="modifierLibelleChoix" DataTextField="libelle">
                            <HeaderStyle BackColor="Silver" BorderColor="Silver" Font-Size="10pt" Font-Underline="True" ForeColor="Black" Width="410px" HorizontalAlign="Center" />
                            <ControlStyle BorderColor="Silver" Width="410px" />
                            <ItemStyle BorderColor="Silver" Font-Names="Arial" Font-Size="11pt" ForeColor="Black" Height="30px" HorizontalAlign="Left" VerticalAlign="Middle" />
                            </asp:ButtonField>
     
                            <asp:ButtonField CommandName="supprimerLibelleChoix" DataTextField="supprimer">
                            <HeaderStyle BackColor="Silver" BorderColor="Silver" Width="120px" HorizontalAlign="Center" />
                            <ControlStyle BorderColor="Silver" Width="120px" />
                            <ItemStyle BorderColor="Silver" Font-Names="Arial" Font-Size="11pt" HorizontalAlign="Center" VerticalAlign="Middle" />
                            </asp:ButtonField>
                            <asp:TemplateField >
     
     
                            <ItemTemplate > 
     
                                <asp:DropDownList  ID="DropDownList1"  OnSelectedIndexChanged='<%# alimenterDdlQCM() %>' runat="server" DataSource='<%# alimenterDdlQCM() %>'>
     
                                </asp:DropDownList>
     
                                </ItemTemplate>
     
                            </asp:TemplateField>
     
                        </Columns>
                        <AlternatingRowStyle BackColor="LightCyan" />
                    </asp:GridView>
    Cela fonctionne tres bien lorsque la page se charge la premiere fois mais des qu'elle se recharge ou qu'il y a un postback les ddl sont vides.
    Est ce que vous avez deja rencontré ce probleme ?

    en sachant que la fonction qui alimente est celle ci

    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
     
    public ArrayList alimenterDdlQCM()
        {
     
            ArrayList ds = new ArrayList();
     
            //On recupere toutes les questions du questionnaire courant
     
            if (idQuestCourante != -1)
            {
                long idQuestion = long.Parse(Session["pageAjouterQuestion_idQuestionAModifier"].ToString());
                idQuestion = idQuestCourante;
                Question[] questionTemp = new LiaisonDB().ExecProcAfficherQuestion(idQuestion, "", -1, -1, -1, -1);
                int positionQuest = questionTemp[0].Position;
                //            Question[] listeQuestion = new LiaisonDB().ExecProcAfficherQuestion(-1, "", -1, -1, -1, idQuestionR);
                Question[] listeQuestion = new LiaisonDB().ExecProcAfficherQuestion(-1, "", -1, -1, -1, questionTemp[0].Questionnaire);
     
                          foreach (Question q in listeQuestion)
                {
                    if (q.Position > questionTemp[0].Position)
                    {
                        ds.Add("Question " + q.Position);
                    }
     
                }
     
     
            }
     
            return ds;
     
        }

  12. #12
    Nouveau membre du Club
    Inscrit en
    Février 2006
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 47
    Points : 31
    Points
    31
    Par défaut Probleme recuperation de donnée
    dans le code du m'a donné il y a une ligne qui bug avec une variable non defini.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DDL = (DropDownList)e.Row.FindControl("DropDownList1");
    Par quoi est ce que je dois remplacer le e ???

    Merci de votre aide et de votre patience

  13. #13
    Membre régulier
    Inscrit en
    Décembre 2005
    Messages
    67
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Décembre 2005
    Messages : 67
    Points : 77
    Points
    77
    Par défaut
    euh dsl, tu peux remplacer la ligne par celle ci



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DDL= maGridView.Rows[indexDeLaLigne].FindControl("DropDownList1");

    voilà


    sinon, tu peux me donner le code que tu as dans le load de ta page?

  14. #14
    Nouveau membre du Club
    Inscrit en
    Février 2006
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 47
    Points : 31
    Points
    31
    Par défaut Alimentation des ddl
    Merci beaucoup ca fonctionne super,

    quand au code du page load je ne sais pas si ca va beaucoup t'aider

    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
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
     
        protected void Page_Load(object sender, EventArgs e)
        {
     
            if (Request.Params["smenu"] != null && Request.Params["smenu"].ToString() == "pageAjouterQuestion")
            {
                if (Session["pageAjouterQuestion_PagePrecedente"] == null)
                {
                    Response.Redirect("http://localhost/newSCR/administration.aspx?smenu=menuQuestionnaire");
                }
                else if (Session["pageAjouterQuestion_PagePrecedente"].ToString() == "ajouterQuestionnaire")
                {
                    pagePrecedente = 1;
                }
                else
                {
                    pagePrecedente = 0;
                }
                ChargementLangues();
                ChargementJS();
                lb_pageAjouterQuestion_err_nouveauChoix.Text = "";
                lb_pageAjouterQuestion_err_LibelleQuestion.Text = "";
                lb_pageAjouterQuestion_err_nouveauChoixTLMnum.Text = "";
                lb_pageAjouterQuestion_erreurUploadImage.Text = "";
                lb_pageAjouterQuestion_erreur_TypeQuestion.Text = "";
                lb_pageAjouterQuestion_erreurPasImageSelectionne.Text = "";
                lb_pageAjouterQuestion_ErreurEnregistrerQuestion.Text = "";
                MiseEnFormeTableauTLMnum();
                MiseEnFormeTableauQCM();
     
                pl_pageAjouterQuestion_TLMnum.Style.Value = "overflow:hidden; visibility:hidden;height:0px";
                pl_pageAjouterQuestion_QCM.Style.Value = "overflow:hidden; visibility:hidden;height:0px";
                pl_ajouterQuestion_GestionImage.Style.Value = "overflow:hidden; visibility:hidden;height:0px";
     
                if (rbl_pageAjouterQuestion_avecImage.Items[0].Selected == true)
                {
                    lb_pageAjouterQuestion_voirImage.Style.Value = "visibility:visible;cursor:pointer;";
                }
                else
                {
                    lb_pageAjouterQuestion_voirImage.Style.Value = "visibility:hidden;cursor:pointer;";
                }
                String valueTypeQuestion=ddl_pageAjouterQuestion_selectionType.SelectedValue;
                //Mounir
                if (valueTypeQuestion == "1" || valueTypeQuestion == "3" || valueTypeQuestion == "4" || valueTypeQuestion == "5" || valueTypeQuestion == "6")
                {
                    //if (valueTypeQuestion == "1")
                    //{
                    //    ChargementGridViewOuiNon();
                    //}
                    if (lb_pageAjouterQuestion_fermerPanel.ToolTip == "")
                    {
                        lb_pageAjouterQuestion_fermerPanel.Style.Value = "visibility:visible; cursor:pointer";
                        lb_pageAjouterQuestion_fermerPanel.Text = pageAjouterQuestion_texte_ouvrir;
                        lb_pageAjouterQuestion_fermerPanel.ToolTip = "0";
                    }
                    else
                    {
                        lb_pageAjouterQuestion_fermerPanel.Style.Value = "visibility:visible; cursor:pointer";
                        lb_pageAjouterQuestion_fermerPanel.Text = pageAjouterQuestion_texte_fermer;
                        lb_pageAjouterQuestion_fermerPanel.ToolTip = "";
                    }
                }
     
                if (Session["pageAjouterQuestion_idQuestionAModifier"] == null || Session["pageAjouterQuestion_idQuestionAModifier"].ToString() == "-1")
                {
                    pageAjouterQuestion_texte_titre = pageAjouterQuestion_texte_AjouterNouvelleQuestion;
                }
                else
                {
                    pageAjouterQuestion_texte_titre = pageAjouterQuestion_texte_modifierQuestion;
     
                }
                if (!Page.IsPostBack)
                {
                    if (Session["pageAjouterQuestion_demandeNouvelleUtilisateur"] != null)
                    {
                        Session.Remove("pageAjouterQuestion_demandeNouvelleUtilisateur");
     
                    }
                    if (Session["ongletQuestionPredefinie_nouveauLibelleQPredefinie"] != null)
                    {
                        tb_pageAjouterQuestion_libelleQuestion.Text = Session["ongletQuestionPredefinie_nouveauLibelleQPredefinie"].ToString();
                        Session.Remove("ongletQuestionPredefinie_nouveauLibelleQPredefinie");
                    }
     
                    if (Session["pageAjouterQuestion_idQCMaSupprimer"] != null)
                    {
                        Session.Remove("pageAjouterQuestion_idQCMaSupprimer");
                    }
                    if (Session["pageAjouterQuestion_idTLMaSupprimer"] != null)
                    {
                        Session.Remove("pageAjouterQuestion_idTLMaSupprimer");
                    }
                    pl_pageAjouterQuestion_TypeQuestion.Style.Value = "overflow:hidden; visibility:hidden;height:0px";
                    ChargerLesImages("-1");
                    ChargementCategorie(-1); 
                    ChargerInfoQuestion();
     
                }// fin if (Page.IsPostBack == false)
     
            }// fin if (Request.Params["smenu"] != null && Request.Params["smenu"].ToString() == "pageAjouterQuestion")
     
     
        }// fin page_load
    ca fait appel a beaucoup d'autre methode

    dont la plus importante


    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
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
     
    protected void ChargerInfoQuestion()
        {
            if (Session["pageAjouterQuestion_idQuestionAModifier"] == null || Session["pageAjouterQuestion_idQuestionAModifier"].ToString() == "-1")
            {
                return;
            }
            long idQuestion = -1;
            try
            {
                idQuestion = long.Parse(Session["pageAjouterQuestion_idQuestionAModifier"].ToString());
                afficher(idQuestion);
     
                idQuestCourante = idQuestion;
            }
            catch (Exception ee) { Response.Redirect("http://localhost/newSCR/administration.aspx?smenu=pageAjouterQuestionnaire"); return; }
     
     
     
            Question[] questionTemp = new LiaisonDB().ExecProcAfficherQuestion(idQuestion, "", -1, -1, -1, -1);
     
            //Je recupere l'id du questionR pour les questions conditionnelles
            idQuestionR = questionTemp[0].Questionnaire;
     
            if (questionTemp != null && questionTemp.Length>0)
            {
                tb_pageAjouterQuestion_libelleQuestion.Text = questionTemp[0].Libelle;
                tb_pageAjouterQuestion_CommentaireQuestionnaire.Text = questionTemp[0].Commentaire;
                chk_pageAjouterQuestion_QCMliste.Checked = false;
                if (questionTemp[0].QcmListe == 1)
                {
                    chk_pageAjouterQuestion_QCMliste.Checked = true;
                }
                chk_pageAjouterQuestion_ChampsAutre.Checked = false;
                if (questionTemp[0].ChampsAutre == 1)
                {
                    chk_pageAjouterQuestion_ChampsAutre.Checked = true;
                }
     
                ChargementCategorie(questionTemp[0].Categorie);
     
                #region question obligatoire/Image
                if (questionTemp[0].Obligatoire == 0)
                {
                    rbl_pageAjouterQuestion_selectionObligatoire.SelectedIndex = 0;
                }
                else
                {
                    rbl_pageAjouterQuestion_selectionObligatoire.SelectedIndex = 1;
                }
                if (questionTemp[0].Image != "")
                {
                    rbl_pageAjouterQuestion_avecImage.SelectedIndex = 0;
                    foreach (ListItem itempTemp in ddl_pageAjouter_listeImage.Items)
                    {
                        if (itempTemp.Value == questionTemp[0].Image)
                        {
                            itempTemp.Selected = true;
                            lb_pageAjouterQuestion_voirImage.Style.Value = "visibility:visible;cursor:pointer;";
                            lb_pageAjouterQuestion_voirImage.ToolTip = "";
                            lb_pageAjouterQuestion_voirImage.Text = pageAjouterQuestion_texte_ouvrir;
     
                            break;
                        }
                    }// fin foreach
                }
                else
                {
                    rbl_pageAjouterQuestion_avecImage.SelectedIndex = 1;
                }
                #endregion
     
                #region typeQuestion
     
     
                if (questionTemp[0].TypeQuestion == 1)
                {
                    ddl_pageAjouterQuestion_selectionType.SelectedIndex = 0;
                    ChargementGridViewOuiNon(true);
                    return;
                }
                else if (questionTemp[0].TypeQuestion == 2)
                {
                    ddl_pageAjouterQuestion_selectionType.SelectedIndex = 1;
                }
                else if (questionTemp[0].TypeQuestion == 3)
                {
                    ddl_pageAjouterQuestion_selectionType.SelectedIndex = 2;
                }
                else if (questionTemp[0].TypeQuestion == 4)
                {
                    ddl_pageAjouterQuestion_selectionType.SelectedIndex = 3;
                }
                else if (questionTemp[0].TypeQuestion == 5)
                {
                    ddl_pageAjouterQuestion_selectionType.SelectedIndex = 4;
                }
                else if (questionTemp[0].TypeQuestion == 6)
                {
                    ddl_pageAjouterQuestion_selectionType.SelectedIndex = 5;
                    TLM[] listeTLM = new LiaisonDB().ExecProcAfficherTLM(idQuestion);
                    if (listeTLM == null)
                    {
                        Response.Redirect("http://localhost/newSCR/administration.aspx?smenu=pageAjouterQuestionnaire");
                        return;
                    }
                    ChargementGridViewTLMnum(listeTLM, 0);
                    lb_pageAjouterQuestion_fermerPanel.Style.Value = "visibility:visible;cursor:pointer";
                    lb_pageAjouterQuestion_fermerPanel.ToolTip = "0";
     
                }
                else if (questionTemp[0].TypeQuestion == 7)
                {
                    ddl_pageAjouterQuestion_selectionType.SelectedIndex = 6;
                }
                if (questionTemp[0].TypeQuestion == 3 || questionTemp[0].TypeQuestion == 4 || questionTemp[0].TypeQuestion == 5)
                {
     
                    QCM[] listeQCM = new LiaisonDB().ExecProcAfficherQCM(idQuestion);
                    if (listeQCM == null)
                    {
                        Response.Redirect("http://localhost/newSCR/administration.aspx?smenu=pageAjouterQuestionnaire");
                        return;
                    }
                    ChargementGridViewQCM(listeQCM, 0);
     
                }
     
     
     
                #endregion
     
            }
     
        }// fin ChargerInfoQuestion()
    Est ce que ca t'aide un peu ?

  15. #15
    Nouveau membre du Club
    Inscrit en
    Février 2006
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 47
    Points : 31
    Points
    31
    Par défaut Alimentation des ddl
    Merci beaucoup ca fonctionne super,

    quand au code du page load je ne sais pas si ca va beaucoup t'aider

    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
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
     
        protected void Page_Load(object sender, EventArgs e)
        {
     
            if (Request.Params["smenu"] != null && Request.Params["smenu"].ToString() == "pageAjouterQuestion")
            {
                if (Session["pageAjouterQuestion_PagePrecedente"] == null)
                {
                    Response.Redirect("http://localhost/newSCR/administration.aspx?smenu=menuQuestionnaire");
                }
                else if (Session["pageAjouterQuestion_PagePrecedente"].ToString() == "ajouterQuestionnaire")
                {
                    pagePrecedente = 1;
                }
                else
                {
                    pagePrecedente = 0;
                }
                ChargementLangues();
                ChargementJS();
                lb_pageAjouterQuestion_err_nouveauChoix.Text = "";
                lb_pageAjouterQuestion_err_LibelleQuestion.Text = "";
                lb_pageAjouterQuestion_err_nouveauChoixTLMnum.Text = "";
                lb_pageAjouterQuestion_erreurUploadImage.Text = "";
                lb_pageAjouterQuestion_erreur_TypeQuestion.Text = "";
                lb_pageAjouterQuestion_erreurPasImageSelectionne.Text = "";
                lb_pageAjouterQuestion_ErreurEnregistrerQuestion.Text = "";
                MiseEnFormeTableauTLMnum();
                MiseEnFormeTableauQCM();
     
                pl_pageAjouterQuestion_TLMnum.Style.Value = "overflow:hidden; visibility:hidden;height:0px";
                pl_pageAjouterQuestion_QCM.Style.Value = "overflow:hidden; visibility:hidden;height:0px";
                pl_ajouterQuestion_GestionImage.Style.Value = "overflow:hidden; visibility:hidden;height:0px";
     
                if (rbl_pageAjouterQuestion_avecImage.Items[0].Selected == true)
                {
                    lb_pageAjouterQuestion_voirImage.Style.Value = "visibility:visible;cursor:pointer;";
                }
                else
                {
                    lb_pageAjouterQuestion_voirImage.Style.Value = "visibility:hidden;cursor:pointer;";
                }
                String valueTypeQuestion=ddl_pageAjouterQuestion_selectionType.SelectedValue;
                //Mounir
                if (valueTypeQuestion == "1" || valueTypeQuestion == "3" || valueTypeQuestion == "4" || valueTypeQuestion == "5" || valueTypeQuestion == "6")
                {
                    //if (valueTypeQuestion == "1")
                    //{
                    //    ChargementGridViewOuiNon();
                    //}
                    if (lb_pageAjouterQuestion_fermerPanel.ToolTip == "")
                    {
                        lb_pageAjouterQuestion_fermerPanel.Style.Value = "visibility:visible; cursor:pointer";
                        lb_pageAjouterQuestion_fermerPanel.Text = pageAjouterQuestion_texte_ouvrir;
                        lb_pageAjouterQuestion_fermerPanel.ToolTip = "0";
                    }
                    else
                    {
                        lb_pageAjouterQuestion_fermerPanel.Style.Value = "visibility:visible; cursor:pointer";
                        lb_pageAjouterQuestion_fermerPanel.Text = pageAjouterQuestion_texte_fermer;
                        lb_pageAjouterQuestion_fermerPanel.ToolTip = "";
                    }
                }
     
                if (Session["pageAjouterQuestion_idQuestionAModifier"] == null || Session["pageAjouterQuestion_idQuestionAModifier"].ToString() == "-1")
                {
                    pageAjouterQuestion_texte_titre = pageAjouterQuestion_texte_AjouterNouvelleQuestion;
                }
                else
                {
                    pageAjouterQuestion_texte_titre = pageAjouterQuestion_texte_modifierQuestion;
     
                }
                if (!Page.IsPostBack)
                {
                    if (Session["pageAjouterQuestion_demandeNouvelleUtilisateur"] != null)
                    {
                        Session.Remove("pageAjouterQuestion_demandeNouvelleUtilisateur");
     
                    }
                    if (Session["ongletQuestionPredefinie_nouveauLibelleQPredefinie"] != null)
                    {
                        tb_pageAjouterQuestion_libelleQuestion.Text = Session["ongletQuestionPredefinie_nouveauLibelleQPredefinie"].ToString();
                        Session.Remove("ongletQuestionPredefinie_nouveauLibelleQPredefinie");
                    }
     
                    if (Session["pageAjouterQuestion_idQCMaSupprimer"] != null)
                    {
                        Session.Remove("pageAjouterQuestion_idQCMaSupprimer");
                    }
                    if (Session["pageAjouterQuestion_idTLMaSupprimer"] != null)
                    {
                        Session.Remove("pageAjouterQuestion_idTLMaSupprimer");
                    }
                    pl_pageAjouterQuestion_TypeQuestion.Style.Value = "overflow:hidden; visibility:hidden;height:0px";
                    ChargerLesImages("-1");
                    ChargementCategorie(-1); 
                    ChargerInfoQuestion();
     
                }// fin if (Page.IsPostBack == false)
     
            }// fin if (Request.Params["smenu"] != null && Request.Params["smenu"].ToString() == "pageAjouterQuestion")
     
     
        }// fin page_load
    ca fait appel a beaucoup d'autre methode

    dont la plus importante


    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
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
     
    protected void ChargerInfoQuestion()
        {
            if (Session["pageAjouterQuestion_idQuestionAModifier"] == null || Session["pageAjouterQuestion_idQuestionAModifier"].ToString() == "-1")
            {
                return;
            }
            long idQuestion = -1;
            try
            {
                idQuestion = long.Parse(Session["pageAjouterQuestion_idQuestionAModifier"].ToString());
                afficher(idQuestion);
     
                idQuestCourante = idQuestion;
            }
            catch (Exception ee) { Response.Redirect("http://localhost/newSCR/administration.aspx?smenu=pageAjouterQuestionnaire"); return; }
     
     
     
            Question[] questionTemp = new LiaisonDB().ExecProcAfficherQuestion(idQuestion, "", -1, -1, -1, -1);
     
            //Je recupere l'id du questionR pour les questions conditionnelles
            idQuestionR = questionTemp[0].Questionnaire;
     
            if (questionTemp != null && questionTemp.Length>0)
            {
                tb_pageAjouterQuestion_libelleQuestion.Text = questionTemp[0].Libelle;
                tb_pageAjouterQuestion_CommentaireQuestionnaire.Text = questionTemp[0].Commentaire;
                chk_pageAjouterQuestion_QCMliste.Checked = false;
                if (questionTemp[0].QcmListe == 1)
                {
                    chk_pageAjouterQuestion_QCMliste.Checked = true;
                }
                chk_pageAjouterQuestion_ChampsAutre.Checked = false;
                if (questionTemp[0].ChampsAutre == 1)
                {
                    chk_pageAjouterQuestion_ChampsAutre.Checked = true;
                }
     
                ChargementCategorie(questionTemp[0].Categorie);
     
                #region question obligatoire/Image
                if (questionTemp[0].Obligatoire == 0)
                {
                    rbl_pageAjouterQuestion_selectionObligatoire.SelectedIndex = 0;
                }
                else
                {
                    rbl_pageAjouterQuestion_selectionObligatoire.SelectedIndex = 1;
                }
                if (questionTemp[0].Image != "")
                {
                    rbl_pageAjouterQuestion_avecImage.SelectedIndex = 0;
                    foreach (ListItem itempTemp in ddl_pageAjouter_listeImage.Items)
                    {
                        if (itempTemp.Value == questionTemp[0].Image)
                        {
                            itempTemp.Selected = true;
                            lb_pageAjouterQuestion_voirImage.Style.Value = "visibility:visible;cursor:pointer;";
                            lb_pageAjouterQuestion_voirImage.ToolTip = "";
                            lb_pageAjouterQuestion_voirImage.Text = pageAjouterQuestion_texte_ouvrir;
     
                            break;
                        }
                    }// fin foreach
                }
                else
                {
                    rbl_pageAjouterQuestion_avecImage.SelectedIndex = 1;
                }
                #endregion
     
                #region typeQuestion
     
     
                if (questionTemp[0].TypeQuestion == 1)
                {
                    ddl_pageAjouterQuestion_selectionType.SelectedIndex = 0;
                    ChargementGridViewOuiNon(true);
                    return;
                }
                else if (questionTemp[0].TypeQuestion == 2)
                {
                    ddl_pageAjouterQuestion_selectionType.SelectedIndex = 1;
                }
                else if (questionTemp[0].TypeQuestion == 3)
                {
                    ddl_pageAjouterQuestion_selectionType.SelectedIndex = 2;
                }
                else if (questionTemp[0].TypeQuestion == 4)
                {
                    ddl_pageAjouterQuestion_selectionType.SelectedIndex = 3;
                }
                else if (questionTemp[0].TypeQuestion == 5)
                {
                    ddl_pageAjouterQuestion_selectionType.SelectedIndex = 4;
                }
                else if (questionTemp[0].TypeQuestion == 6)
                {
                    ddl_pageAjouterQuestion_selectionType.SelectedIndex = 5;
                    TLM[] listeTLM = new LiaisonDB().ExecProcAfficherTLM(idQuestion);
                    if (listeTLM == null)
                    {
                        Response.Redirect("http://localhost/newSCR/administration.aspx?smenu=pageAjouterQuestionnaire");
                        return;
                    }
                    ChargementGridViewTLMnum(listeTLM, 0);
                    lb_pageAjouterQuestion_fermerPanel.Style.Value = "visibility:visible;cursor:pointer";
                    lb_pageAjouterQuestion_fermerPanel.ToolTip = "0";
     
                }
                else if (questionTemp[0].TypeQuestion == 7)
                {
                    ddl_pageAjouterQuestion_selectionType.SelectedIndex = 6;
                }
                if (questionTemp[0].TypeQuestion == 3 || questionTemp[0].TypeQuestion == 4 || questionTemp[0].TypeQuestion == 5)
                {
     
                    QCM[] listeQCM = new LiaisonDB().ExecProcAfficherQCM(idQuestion);
                    if (listeQCM == null)
                    {
                        Response.Redirect("http://localhost/newSCR/administration.aspx?smenu=pageAjouterQuestionnaire");
                        return;
                    }
                    ChargementGridViewQCM(listeQCM, 0);
     
                }
     
     
     
                #endregion
     
            }
     
        }// fin ChargerInfoQuestion()
    Est ce que ca t'aide un peu a voir ou peut etre le probleme ?

  16. #16
    Membre régulier
    Inscrit en
    Décembre 2005
    Messages
    67
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Décembre 2005
    Messages : 67
    Points : 77
    Points
    77
    Par défaut
    Je ne vois pas trop ou tu appelle alimenterDdlQCM() ?

  17. #17
    Nouveau membre du Club
    Inscrit en
    Février 2006
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 47
    Points : 31
    Points
    31
    Par défaut Code alimenterDdlQCM()
    je l'appel dans le code asp

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <asp:TemplateField >
     
     
                            <ItemTemplate > 
     
                                <asp:DropDownList  ID="DropDownList1"  OnSelectedIndexChanged='<%# alimenterDdlQCM() %>' runat="server" DataSource='<%# alimenterDdlQCM() %>'>
     
                                </asp:DropDownList>
     
                                </ItemTemplate>
     
                            </asp:TemplateField>
    voila le code de alimenterDdlQCM()

    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
    public ArrayList alimenterDdlQCM()
        {
     
            ArrayList ds = new ArrayList();
     
            //On recupere toutes les questions du questionnaire courant
     
            if (idQuestCourante != -1)
            {
                long idQuestion = long.Parse(Session["pageAjouterQuestion_idQuestionAModifier"].ToString());
                idQuestion = idQuestCourante;
                Question[] questionTemp = new LiaisonDB().ExecProcAfficherQuestion(idQuestion, "", -1, -1, -1, -1);
                int positionQuest = questionTemp[0].Position;
                //            Question[] listeQuestion = new LiaisonDB().ExecProcAfficherQuestion(-1, "", -1, -1, -1, idQuestionR);
                Question[] listeQuestion = new LiaisonDB().ExecProcAfficherQuestion(-1, "", -1, -1, -1, questionTemp[0].Questionnaire);
     
                          foreach (Question q in listeQuestion)
                {
                    if (q.Position > questionTemp[0].Position)
                    {
                        ds.Add("Question " + q.Position);
                    }
     
                }
     
     
            }
     
            return ds;
     
        }

  18. #18
    Membre régulier
    Inscrit en
    Décembre 2005
    Messages
    67
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Décembre 2005
    Messages : 67
    Points : 77
    Points
    77
    Par défaut
    humm , c'est bizarre , chez moi cela fonctionne...

    Je vais regarder ....

  19. #19
    Membre régulier
    Inscrit en
    Décembre 2005
    Messages
    67
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Décembre 2005
    Messages : 67
    Points : 77
    Points
    77
    Par défaut
    Si tu mets un point d'arret sur

    dans ta méthode alimenterDdlQCM()


    ds a bien des enregistrements ?

  20. #20
    Nouveau membre du Club
    Inscrit en
    Février 2006
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 47
    Points : 31
    Points
    31
    Par défaut Pb résolu
    C'est bon j'ai résolu le probleme, ds etait vide parce que ma variable
    idQuestioncourante se vidait lors du postback et revenait toujours a -1 ce qui avait pour effet de ne pas se remplir. Il m'a suffit de la mettre en static pour qu'elle garde sa valeur.

    Merci beaucoup pour votre aide :-)

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [ASP.NET C# - XML] - Ajout
    Par Medmidou dans le forum ASP.NET
    Réponses: 1
    Dernier message: 30/04/2009, 15h27
  2. Réponses: 4
    Dernier message: 08/04/2008, 09h57
  3. Réponses: 6
    Dernier message: 06/03/2008, 13h09
  4. [Asp .Net 1.1] Ajouter une ligne à un datagrid
    Par Jsh dans le forum ASP.NET
    Réponses: 3
    Dernier message: 04/03/2008, 15h48
  5. Réponses: 3
    Dernier message: 01/03/2007, 17h08

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