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 :

Initialisation d'un formulaire


Sujet :

ASP.NET

  1. #1
    Membre actif
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Avril 2011
    Messages
    89
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : Administration - Collectivit� locale

    Informations forums :
    Inscription : Avril 2011
    Messages : 89
    Par d�faut Initialisation d'un formulaire
    Bonjour a tous, je reviens vous casser les yeux avec mon probleme de sondage.

    Donc voila j'ai un gridview qui contient un formulaire a savoir un tableau compos� de :
    • Id de la question
    • Theme de la question
    • Libelle de la question
    • un radio bouton non repondu (cach�)
    • un radio bouton oui
    • un radio bouton non


    les donn�es concernant la question sont charg�es depuis la table Question.

    Je stocke dans une table reponse l'Id de la reponse, l'Id de la question, le code utilisateur et la reponse de l'utilisateur.

    J'arrive a creer un sondage vierge, a sauvegarder mes votes.

    Mon Probleme : je voudrais que lorsque l'utilisateur revient sur la page, le formulaire soit pre-rempli avec ses votes precedents... (je sais quand c'est lui puisque je dispose de session["strIdUtilisateur"]...

    Mon probleme est vraiment juste centre sur le fait d'initialiser le gridview gvQuestion depuis les 2 tables... Ah oui je suis en ASP.NET 2.0 (visual studio 2005) avec C# et mes utilisateurs ont tous IE 6... (defense de rire!!)

    Pouvez vous m'aider? Merci!

  2. #2
    Membre �m�rite 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
    Par d�faut
    Bonsoir,
    �a d�pend du comment tu �tablit la liaison entre ton griView et les donn�es. Si tu utilises des controles data source, tu dois refaire le binding (gridview.DataSource et gridview.Databind()); Sans plus d'info (code) ,difficile de t'aider plus.

  3. #3
    Membre actif
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Avril 2011
    Messages
    89
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : Administration - Collectivit� locale

    Informations forums :
    Inscription : Avril 2011
    Messages : 89
    Par d�faut
    Tout se passe dans le code behind

    je teste si l'utilise a d�j� r�pondu :
    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
    protected int verificationUtilisateur()
        {
            int verif=0;
            Reponse reponse = new Reponse();
            DataSet dtsReponseUser = reponse.ListerUtilisateur(Session["IdUtilisateur"].ToString(), strPage);
            if (dtsReponseUser.Tables[0].Rows.Count > 0)
            {
                for (int i = 0; i < dtsReponseUser.Tables[0].Rows.Count; i++)
                {
                    int user;
                    user=Convert.ToInt32(dtsReponseUser.Tables[0].Rows[i][0].ToString());
                    int formul;
                    formul = Convert.ToInt32(dtsReponseUser.Tables[0].Rows[i][1].ToString());
                    //lblTest.Text = user.ToString();
                    if ((user == Convert.ToInt32(Session["IdUtilisateur"].ToString())) && (formul==1))
                    {
                        verif = 1;
                    }
                    else verif = 0;
                }
            }
            else
                verif = 0;
            return verif;
        }
    Dans le page_load:
    si il a deja repondu alors on initialise le formulaire a vide, sinon on appelle une fonction d'initialisation:
    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
     int a=0;
                a = verificationUtilisateur();
                lblTest.Text = a.ToString();
                if (!IsPostBack)
                {
                    if (a == 0)
                    {
                        lblTitrePage.Text = "Vous n'avez pas encore particip  ce sondage";
                        // Rcupration de toutes les questions et liaison avec le DataGrid
                        Question question = new Question();
                        DataSet dtsQuestion = question.ListerQuestion(Session["IdUtilisateur"].ToString(), strPage);
                        DataTable dttQuestion = dtsQuestion.Tables[0];
                        DataView dtvQuestion = new DataView(dttQuestion);
                        gvQuestion.DataSource = dtvQuestion;
                        gvQuestion.DataBind();
                    }
                    else
                    {
     
                        // Rcupration de toutes les questions et liaison avec le DataGrid
                        FillFields();
                    }
    Quand on valide le formulaire, on enregistre les donn�es : (marche pas bien car je voudrais purger la Bdd contenant les donn�es de vote de l'utilisateur sur ce formulaire mais en court de reparation)
    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
    protected void btnValider_click(object sender, EventArgs e)
        {
            Reponse reponse = new Reponse();
            DataSet dtsReponseUser = reponse.ListerUtilisateur(Session["IdUtilisateur"].ToString(), strPage);
            if (dtsReponseUser.Tables[0].Rows.Count > 0)
            {
                //Si l'utilisateur a deja repondu au sondage, on supprime ses anciennes reponses
                int b;
                b = verificationUtilisateur();
                if (b != 0)
                {
                    reponse.iFormulaire = 1;
                    if (reponse.SupprimerAllReponseUser(Session["IdUtilisateur"].ToString(), strPage) == 0)
                        Response.Redirect(Application["pageProblemeBD"].ToString(), false);
                }
            }
     
            foreach (GridViewRow rowQuestion in gvQuestion.Rows)
            {
                int Formul = 1;
                string strIdQuestion = ((Label)rowQuestion.FindControl("lblId")).Text;
                RadioButton rbOui = (RadioButton)rowQuestion.FindControl("rbReponseOui");
                RadioButton rbNon = (RadioButton)rowQuestion.FindControl("rbReponseNon");
                            reponse.iFormulaire = Formul;
                reponse.iUtilisateur = Convert.ToInt32(Session["IdUtilisateur"].ToString());
                reponse.strQuestion = strIdQuestion;
                if (rbOui.Checked)
                    reponse.strReponseUtilisateur = "Oui";
                else if (rbNon.Checked)
                    reponse.strReponseUtilisateur = "Non";
                else
                    reponse.strReponseUtilisateur = "Non Repondu";
     
                if (Request.QueryString["id"] == null)
                {
                    if (reponse.AjouterReponse(Session["IdUtilisateur"].ToString(), strPage) == 0)
                        Response.Redirect(Application["pageProblemeBD"].ToString(), false);
                }
                else
                {
                    if (reponse.ModifierReponse(Session["IdUtilisateur"].ToString(), strPage) == 0)
                        Response.Redirect(Application["pageProblemeBD"].ToString(), false);
                }
            }
    Cette fonction r�initiliase le formulaire:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    protected void btnEffacer_click(object sender, EventArgs e)
        {
            for (int i = 0; i < gvQuestion.Rows.Count; i++)
            {
                GridViewRow gvRow = gvQuestion.Rows[i];
                RadioButton rbNonRepondu = (RadioButton)gvRow.FindControl("rbNonRepondu");
                RadioButton rbOui = (RadioButton)gvRow.FindControl("rbReponseOui");
                RadioButton rbNon = (RadioButton)gvRow.FindControl("rbReponseNon");
                rbNonRepondu.Checked = true;
                rbOui.Checked = false;
                rbNon.Checked = false;
            }
        }
    Ces deux fonctions j'ai pas compric comment m'en servir (elles servent au gridview:
    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
    protected void gvQuestion_DataBound(object sender, EventArgs e)
        {
            try
            {
                for (int i = 0; i < gvQuestion.Rows.Count; i++)
                {
                    GridViewRow gvRow = gvQuestion.Rows[i];
     
                    Label lblId = (Label)gvRow.FindControl("lblId");
                    string strId = lblId.Text;
                    Label lblTheme = (Label)gvRow.FindControl("lblTheme");
                    Label lblQuestion = (Label)gvRow.FindControl("lblQuestion");
                    if (strId.Equals("w00"))
                    {
                        lblQuestion.CssClass = "sondageprincipal";
                    }
                    else if (strId.Equals("e00"))
                        lblQuestion.CssClass = "sondageprincipal";
                    else if (strId.Equals("p00"))
                        lblQuestion.CssClass = "sondageprincipal"; 
                }
            }
            catch (Exception ex)
            {
                ErrorHandler.HandleError(ex, Session["IdUtilisateur"].ToString());
                Response.Redirect(Application["pageProblemeApplication"].ToString() + "?messageErreur=" + ex.Message, false);
            }
        }
     
        protected void gvQuestion_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            try
            {
                if (e.Row.RowType == DataControlRowType.DataRow)
                {
                 //rien
                }
            }
            catch (Exception ex)
            {
                ErrorHandler.HandleError(ex, Session["IdUtilisateur"].ToString());
                Response.Redirect(Application["pageProblemeApplication"].ToString() + "?messageErreur=" + ex.Message, false);
            }
        }

  4. #4
    Membre �m�rite 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
    Par d�faut
    Mon Probleme : je voudrais que lorsque l'utilisateur revient sur la page, le formulaire soit pre-rempli avec ses votes precedents... (je sais quand c'est lui puisque je dispose de session["strIdUtilisateur"]...

    Mon probleme est vraiment juste centre sur le fait d'initialiser le gridview gvQuestion depuis les 2 tables
    Que contient le DataSet dtsQuestion . Normalement avec ceci, tu peux aussi peupler le gridview par les donn�es de ses votes pr�c�dentes. Comment tu stock la valeur du RadioButton dans la base? Est ce que la valeur qui a �t� stock� dans la base te permet d'avoir directement le RadioButton coch� une fois sur le gridview, sinon il faut utiliser le gestionnaire d��v�nement OnRowDataBound .

  5. #5
    Membre actif
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Avril 2011
    Messages
    89
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : Administration - Collectivit� locale

    Informations forums :
    Inscription : Avril 2011
    Messages : 89
    Par d�faut
    Citation Envoy� par Ramajb Voir le message
    Que contient le DataSet dtsQuestion . Normalement avec ceci, tu peux aussi peupler le gridview par les donn�es de ses votes pr�c�dentes. Comment tu stock la valeur du RadioButton dans la base? Est ce que la valeur qui a �t� stock� dans la base te permet d'avoir directement le RadioButton coch� une fois sur le gridview, sinon il faut utiliser le gestionnaire d��v�nement OnRowDataBound .
    Que contient dtsQuestion
    Le dtsQuestion contient les valeurs retournees par la procedure SQL sur la base Oracle qui interroge la table Question. ListerQuestion (� savoir : pour un formulaire donn�, je r�cup�re l'Id de la question, son th�me et son libell�)

    Comment tu stockes la valeur du radiobutton
    J'ai une table Reponse qui contient l'Id de la reponse, le numero de l'utilisateur, le code du formulaire, le code de la question et sa reponse ("oui", "non", ou "non repondu"). Quand je sauvegarde la reponse, je regarde la valeur du bouton checked et j'�crit la reponse en base. Par exemple si rboui.Checked=true alors reponse.ReponseUtilisateur="oui"...

    gestionnaire OnRowDataBound
    je sais pas m'en servir.

    je debute en asp.net et je reprends le code d'un projet existant... Merci de ton aide

Discussions similaires

  1. Initialisation d'un formulaire
    Par georgesasc dans le forum IHM
    R�ponses: 2
    Dernier message: 05/07/2010, 14h29
  2. [ZF 1.10] Initialiser Valeur Champ Formulaire
    Par Flamenco dans le forum Zend_Form
    R�ponses: 8
    Dernier message: 01/04/2010, 11h36
  3. Initialisation d'un formulaire
    Par chris78 dans le forum Struts 1
    R�ponses: 21
    Dernier message: 28/04/2009, 19h16
  4. M�thode d'Initialisation d'un formulaire
    Par saziley dans le forum Struts 2
    R�ponses: 2
    Dernier message: 30/03/2009, 17h48
  5. Initialisation variable dans formulaire
    Par yagrasdemonde dans le forum Langage
    R�ponses: 4
    Dernier message: 05/12/2008, 20h41

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