// Se declenche quand on clique sur les boutons edit/delete/update/cancel protected void GridViewQuestion_RowCommand(object sender, GridViewCommandEventArgs e) { Trace.Warn("GridViewQuestion_RowCommand"); if (e.CommandName == "Edit") { // Trouver la Question selectionnee par l'utilisateur pour remplir les colonnes cachees lors du save int index = Convert.ToInt32(e.CommandArgument); GridView gv = ( GridView )e.CommandSource; string q = gv.DataKeys[index].Value.ToString(); PollQuestionCollection questions = PollQuestionCollection.GetByQuestionnaire(SessionState.Questionnaire.QuestionnaireID); SessionState.Question = questions.FindByPollQuestionID(new Guid(q)); } if (e.CommandName == "Delete") { int index = Convert.ToInt32(e.CommandArgument); GridView gv = ( GridView )e.CommandSource; Guid questionGuid = new Guid(gv.DataKeys[index].Value.ToString()); int status = PollQuestion.Delete(questionGuid); SessionState.Limitations.SupprimerQuestion(); } Trace.Warn(string.Format("GridViewQuestion_RowCommand CommandName : {0}", e.CommandName)); }
// Se declenche quand on clique sur les boutons edit/delete/update/cancel protected void GridViewQuestion_RowCommand(object sender, GridViewCommandEventArgs e) { if (e.CommandName == "Edit") { // Trouver la Question selectionnee par l'utilisateur int index = Convert.ToInt32(e.CommandArgument); GridView gv = ( GridView )e.CommandSource; string q = gv.DataKeys[index].Value.ToString(); PollQuestionCollection questions = PollQuestionCollection.GetByQuestionnaire(SessionState.Questionnaire.QuestionnaireID); SessionState.Question = questions.FindByPollQuestionID(new Guid(q)); } Trace.Warn(string.Format("GridViewQuestion_RowCommand CommandName : {0}", e.CommandName)); }
void AfficherToutLesVotesEnBas(Guid pollQuestionID) { PanelReponsesEnBas.Controls.Clear(); bool afficherDateVote = SessionState.CheckBox["CheckBoxAfficherDateVote"]; PollQuestionCollection pollQuestionCollection = PollQuestionCollection.GetByQuestionnaire(SessionState.Questionnaire.QuestionnaireID); // On cumul les Questions cliquees par l'utilisateur if (pollQuestionID != Guid.Empty) { // La Collection se reduit a une seule Question PollQuestion pollQuestion = pollQuestionCollection.FindByPollQuestionID(pollQuestionID); // Cumuler les questions cliquees par l'utilisateur // Sauf si elle est deja dans QuestionsVotesEnBas // cela permet d'eviter de cumuler encore quand on passe aux formulaires print ou excel bool trouve = false; foreach (PollQuestion q in QuestionsVotesEnBas) { if (q.PollQuestionId == pollQuestionID) { trouve = true; break; } } if (trouve == false) { QuestionsVotesEnBas.Add(pollQuestion); } } else { // On prend toutes les questions du questionnaire QuestionsVotesEnBas = pollQuestionCollection; } // Si une sous-population est a l'etude on affiche que cette sous-population AME13072010 PersonneCollection personnesAffichees = new PersonneCollection(); PollVoteCollection[] tableauPollVotespersonnesAffichees; if (PersonnesOntReponduATout.Count > 0) { personnesAffichees = PersonnesOntReponduATout; // Il faut reafficher PanelReponse sinon il disparait // Attention ici on est appellé par ListBoxQui_SelectedIndexChange donc on doit faire un Clear PanelReponses.Controls.Clear(); AfficherEnHautReponsesDeSousPopulation(); tableauPollVotespersonnesAffichees = TableauVotesPersonnesOntReponduATout; } else { personnesAffichees = Personnes; tableauPollVotespersonnesAffichees = TableauVotesPersonnes; } foreach (PollQuestion question in QuestionsVotesEnBas) { PollAnswerCollection reponses = PollAnswerCollection.GetByPollQuestionID(question.PollQuestionId); Label labelQ = new Label(); labelQ.CssClass = "LabelQuestionStyle"; labelQ.Text = question.Rank.ToString() + " - " + question.Question; Table tableQ = new Table(); TableCell cellQ = new TableCell(); TableRow rowQ = new TableRow(); cellQ.Controls.Add(labelQ); rowQ.Controls.Add(cellQ); tableQ.Controls.Add(rowQ); PanelReponsesEnBas.Controls.Add(tableQ); foreach (PollAnswer reponse in reponses) { Table tableR = new Table(); TableCell cellR = new TableCell(); TableRow rowR = new TableRow(); Label labelR = new Label(); labelR.CssClass = "HyperLinkQuestionEnCoursStyle"; if (FormulaireEnModeExcel) { labelR.Text = "r : "; // ajouter un petit " r : " pour que ce con d'excel ne prenne pas ca pour une date } labelR.Text += reponse.Rank.ToString() + " - " + reponse.Answer; cellR.Controls.Add(labelR); rowR.Controls.Add(cellR); tableR.Controls.Add(rowR); PanelReponsesEnBas.Controls.Add(tableR); Table tableP = new Table(); int indexPollVotes = 0; foreach (Personne p in personnesAffichees) { PollVoteCollection pvc = tableauPollVotespersonnesAffichees[indexPollVotes].FindByAnswerID(reponse.PollAnswerId); string personne = FormatPersonne(p); foreach (PollVote pv in pvc) { // Table de Reponses des Interviewes TableCell cellP = new TableCell(); TableRow rowP = new TableRow(); if (afficherDateVote) { TableCell cellD = new TableCell(); cellD.Text = pv.CreationDate.ToString(); rowP.Cells.Add(cellD); } cellP.Text = personne; // OPT17072010 Strings.TexteToHTML( personne ); cellP.CssClass = "TableReponsePersonneStyle"; rowP.Cells.Add(cellP); tableP.Rows.Add(rowP); // Pour les reponses textuelles if (pv.Vote != "") { TableCell cellV = new TableCell(); cellV.Text = Strings.TexteToHTML(pv.Vote); rowP.Cells.Add(cellV); tableP.Rows.Add(rowP); } } if (pvc.Count > 0 /* votant */) { PanelReponsesEnBas.Controls.Add(tableP); } indexPollVotes += 1; } } } }
protected void Page_Load(object sender, EventArgs e) { if (IsPostBack == false) { // Formulaire en mode Impression // AME14112009 if (Request.QueryString["print"] != null || Request.QueryString["excel"] != null) { ImageButtonPrint.Visible = false; PanelControlSats.Visible = false; PanelAide.Visible = false; } if (Request.QueryString["print"] != null) { QuestionnaireControlStatAll.ModePrint = true; TrBoutonRetour.Visible = true; } if (Request.QueryString["excel"] != null) { PanelBoutonControl.Visible = false; // En fait cela revient a changer l'extension html en .xls // c'est totalement bidon ! Response.ContentType = "application/vnd.ms-excel"; // Set the content type to Excel Response.Charset = ""; // Remove the charset from the Content-Type header Page.EnableViewState = false; // Sinon Excel de merde ne sait pas lire le fichier genere !!! // Il faut absolument cette meta dans la MasterPage Print sinon cela ne marche pas pour // Excel d'ailleur en positionnant Charset ici on ne retrouve rien dans la source !...? // <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> QuestionnaireControlStatAll.ModeExcel = true; } // Choisir le premier Questionnaire a la place de l'utilisateur if (SessionState.Questionnaire == null && SessionState.Questionnaires.Count > 0) { SessionState.Questionnaire = SessionState.Questionnaires[0]; } if (Request.QueryString["QuestionnaireID"] != null) { int questionnaireID = int.Parse(Request.QueryString["QuestionnaireID"]); SessionState.Questionnaire = SessionState.Questionnaires.FindByID(questionnaireID); } // Charger les votes pour ce Questionnaire if (SessionState.Questionnaire != null && Votes == null) { Votes = PollVoteCollection.GetPollVotesByQuestionnaireID(SessionState.Questionnaire.QuestionnaireID); Personnes = PersonneCollection.GetQuestionnaire(SessionState.Questionnaire.QuestionnaireID); initTableauVotesPersonnes(Personnes.Count, Personnes); LabelNombreContacts.Text = Personnes.Count.ToString(); } if (Request.QueryString["PollAnswerID"] != null) { PanelSousPopulation.Visible = true; Guid pollAnswerID = new Guid(Request.QueryString["PollAnswerID"].ToString()); // BUG25092009 Il ne faut ajouter 2 fois la meme reponse sinon il y a cumul // il faut eviter le cumul de PollAnswerID de Questions et de Reponses if (PollAnswerID.Contains(pollAnswerID) == false) { PollAnswerID.Add(pollAnswerID); // Trouver les votants if (Votes.Count > 0) { // Comme on a que pollAnswerID a notre disposition, pour trouver la question il faut // trouver la Reponses de pollAnswerID // trouver la Question de la Reponse PollAnswer pollAnswer = PollAnswerCollection.GetByPollAnswerID(pollAnswerID); PollQuestionCollection pollQuestionCollection = PollQuestionCollection.GetByQuestionnaire(SessionState.Questionnaire.QuestionnaireID); PollQuestion pollQuestion = pollQuestionCollection.FindByPollQuestionID(pollAnswer.PollQuestionId); // Cumuler les Reponses cliquees par l'utilisateur et les Questions Questions.Add(pollQuestion); Reponses.Add(pollAnswer); // BUB25092009 AfficherOnReponduATout(); } } // BUG25092009 il faut afficher tout ici if (Votes.Count > 0) { AfficherOnReponduATout(); } if (ListBoxQui.Items.Count <= 0) { ListBoxQui.Items.Add("Pas de vote"); ListBoxQui.Rows = 1; // On efface tout, sinon l'utilisateur est perdu // et les Questions et les reponses continuent de s'accumuler // et l'utilisateur ne voit rien EffacerSousPopulation(); } else { ListBoxQui.Rows = ListBoxQui.Items.Count <= 10 ? ListBoxQui.Items.Count : 10; LabelListBoxQuiCount.Text = ListBoxQui.Items.Count.ToString(); PanelReponses.Visible = true; } } else // du if ( Request.QueryString[ "PollAnswerID" ] != null ) { ListBoxQui.Items.Add("Cliquez sur une réponse"); ListBoxQui.Rows = 1; EffacerSousPopulation(); } if (SessionState.Questionnaire != null) { QuestionnaireControlStatAll.SelectedQuestionnaireID = SessionState.Questionnaire.QuestionnaireID; PersonnesDropDownListQui.Clear(); // Trouver les votants if (Votes.Count > 0) { int idx = 0; foreach (Personne p in Personnes) { //PollVoteCollection pvc = PollVoteCollection.GetPollVotes( SessionState.Questionnaire.QuestionnaireID, p.PersonneGUID ); //PollVoteCollection pvc = Votes.FindByPersonneGUID( p.PersonneGUID ); PollVoteCollection pvc = TableauVotesPersonnes[idx]; // A t il vote pour ce questionnaire ? if (pvc.Count > 0) { // Cacher les infos sur les votants if (SessionState.Questionnaire.Anonymat) { string personne = "personne" + idx.ToString(); DropDownListQui.Items.Add(personne); Personne anonymat = new Personne(); anonymat = p; anonymat.Nom = personne; anonymat.Prenom = ""; anonymat.EmailBureau = ""; anonymat.Civilite = ""; anonymat.TelephonePerso = ""; PersonnesDropDownListQui.Add(anonymat); // BUG07062010 je vois pas pourquoi !!! //ListBoxQui.Enabled = false; } else { string personne = FormatPersonne(p); DropDownListQui.Items.Add(personne); PersonnesDropDownListQui.Add(p); } } idx += 1; } } LabelVotes.Text = PersonnesDropDownListQui.Count.ToString(); QuestionnaireControlStatAll.PersonneVotants = PersonnesDropDownListQui; // Afficher les votes du premier votant if (PersonnesDropDownListQui.Count >= 1) { if (DropDownListQuiSelectedIndex != 0) { DropDownListQui.SelectedIndex = DropDownListQuiSelectedIndex; } Personne personne = PersonnesDropDownListQui[DropDownListQui.SelectedIndex]; QuestionnaireControlStatAll.SelectedQuestionnaireID = SessionState.Questionnaire.QuestionnaireID; QuestionnaireControlStatAll.SelectedPersonneGUID = personne.PersonneGUID; AfficherVotantEnModePrint(); } } CheckBoxAfficherReponseTextuelle.Checked = SessionState.CheckBox["CheckBoxAfficherReponseTextuelle"]; CheckBoxAfficherDateVote.Checked = SessionState.CheckBox["CheckBoxAfficherDateVote"]; CheckBoxAfficherMoyennePonderee.Checked = SessionState.CheckBox["CheckBoxAfficherMoyennePonderee"]; } }
protected void Page_Load(object sender, EventArgs e) { if (IsPostBack == false) { //// Choisir le premier Questionnaire a la place de l'utilisateur //if ( SessionState.Questionnaire == null && SessionState.Questionnaires.Count > 0 ) //{ // SessionState.Questionnaire = SessionState.Questionnaires[ 0 ]; //} //if ( Request.QueryString[ "QuestionnaireID" ] != null ) //{ // int questionnaireID = int.Parse( Request.QueryString[ "QuestionnaireID" ] ); // SessionState.Questionnaire = SessionState.Questionnaires.FindByID( questionnaireID ); //} if (Request.QueryString["CodeAcces"] != null) { int code = int.Parse(Request.QueryString["CodeAcces"]); // Dans SessionState.Questionnaires on prend une precaution pour verifier le membre // si SessionState.MemberInfo == null alors Va te faire loguer et donc on utilise // pas ce code ici ! // SessionState.Questionnaire = SessionState.Questionnaires.FindByCodeAcces( code ); QuestionnaireCollection questionnaires = QuestionnaireCollection.GetAll(); SessionState.Questionnaire = questionnaires.FindByCodeAcces(code); } if (SessionState.Questionnaire == null || SessionState.Questionnaire.Publier == false) { PanelQuestionnairePasDePublication.Visible = true; PanelQuestionnairePublication.Visible = false; return; } // Pour un meilleur referencement LabelTitre.Text = "Statistiques " + SessionState.Questionnaire.Description; Page.Title = "Publication des Statistiques pour le questionnaire dont la description est " + SessionState.Questionnaire.Description; base.AddMetaContentType(); base.AddMetaTag("description", "Publication des statistiques pour le questionnaire" + SessionState.Questionnaire.Description); base.AddMetaTag("keywords", "questionnaire, statistique, enquêtes, enquete, en ligne"); base.AddMetaTag("revisit-after", "10 days"); base.AddMetaTag("author", "Sodevlog"); base.AddMetaTag("copyright", "Sodevlog"); // Charger les votes pour ce Questionnaire if (SessionState.Questionnaire != null && Votes == null) { Votes = PollVoteCollection.GetPollVotesByQuestionnaireID(SessionState.Questionnaire.QuestionnaireID); Personnes = PersonneCollection.GetQuestionnaire(SessionState.Questionnaire.QuestionnaireID); } if (Request.QueryString["PollAnswerID"] != null) { PanelSousPopulation.Visible = true; Guid pollAnswerID = new Guid(Request.QueryString["PollAnswerID"].ToString()); // BUG25092009 Il ne faut ajouter 2 fois la meme reponse sinon il y a cumul // il faut eviter le cumul de PollAnswerID de Questions et de Reponses if (PollAnswerID.Contains(pollAnswerID) == false) { PollAnswerID.Add(pollAnswerID); // Trouver les votants if (Votes.Count > 0) { // Comme on a que pollAnswerID a notre disposition, pour trouver la question il faut // trouver la Reponses de pollAnswerID // trouver la Question de la Reponse PollAnswer pollAnswer = PollAnswerCollection.GetByPollAnswerID(pollAnswerID); PollQuestionCollection pollAnswerCollection = PollQuestionCollection.GetByQuestionnaire(SessionState.Questionnaire.QuestionnaireID); PollQuestion pollQuestion = pollAnswerCollection.FindByPollQuestionID(pollAnswer.PollQuestionId); // Cumuler les Reponses cliquees par l'utilisateur et les Questions Questions.Add(pollQuestion); Reponses.Add(pollAnswer); // BUB25092009 AfficherTout(); } } // BUG25092009 on peut afficher tout ici AfficherTout(); if (ListBoxQui.Items.Count <= 0) { ListBoxQui.Items.Add("Pas de vote"); ListBoxQui.Rows = 1; // On efface tout, sinon l'utilisateur est perdu // et les Questions et les reponses continuent de s'accumuler // et l'utilisateur ne voit rien EffacerSousPopulation(); } else { ListBoxQui.Rows = ListBoxQui.Items.Count <= 10 ? ListBoxQui.Items.Count : 10; LabelListBoxQuiCount.Text = "Sous-population : " + ListBoxQui.Items.Count.ToString(); PanelReponses.Visible = true; } } else // du if ( Request.QueryString[ "PollAnswerID" ] != null ) { ListBoxQui.Items.Add("Cliquez sur une réponse"); ListBoxQui.Rows = 1; EffacerSousPopulation(); } if (SessionState.Questionnaire != null) { QuestionnairePublication.SelectedQuestionnaireID = SessionState.Questionnaire.QuestionnaireID; LabelNombreContacts.Text = Personnes.Count.ToString(); PersonnesDropDownListQui.Clear(); // Trouver les votants if (Votes.Count > 0) { foreach (Personne p in Personnes) { //PollVoteCollection pvc = PollVoteCollection.GetPollVotes( SessionState.Questionnaire.QuestionnaireID, p.PersonneGUID ); PollVoteCollection pvc = Votes.FindByPersonneGUID(p.PersonneGUID); // A t il vote pour ce questionnaire ? if (pvc.Count > 0) { string personne = p.Nom + "/" + p.Prenom + "/" + p.EmailBureau; DropDownListQui.Items.Add(personne); PersonnesDropDownListQui.Add(p); } } } QuestionnairePublication.PersonneVotants = PersonnesDropDownListQui; // Afficher les votes du permier votant if (PersonnesDropDownListQui.Count >= 1) { if (DropDownListQuiSelectedIndex != 0) { DropDownListQui.SelectedIndex = DropDownListQuiSelectedIndex; } Personne personne = PersonnesDropDownListQui[DropDownListQui.SelectedIndex]; QuestionnairePublication.SelectedQuestionnaireID = SessionState.Questionnaire.QuestionnaireID; QuestionnairePublication.SelectedPersonneGUID = personne.PersonneGUID; } LabelVotes.Text = PersonnesDropDownListQui.Count.ToString(); } CheckBoxAfficherReponseTextuelle.Checked = SessionState.CheckBox["CheckBoxAfficherReponseTextuelle"]; CheckBoxAfficherDateVote.Checked = SessionState.CheckBox["CheckBoxAfficherDateVote"]; } // Effacer les objets que l'on publie pas //DropDownListQuestionnaires.Visible = false; ListBoxQui.Visible = false; //DropDownListQui.Visible = false; CheckBoxAfficherReponseTextuelle.Checked = false; QuestionnairePublication.AfficherReponseTextuelle = false; QuestionnairePublication.AfficherLaDateDesVotes = false; }