/// <summary> /// Set the forms to match DB question options /// </summary> private void SetQuestionOptions() { // Retrieve the original question values _question = new Questions().GetQuestionById(_questionId, null); QuestionData.QuestionsRow questionRow = _question.Questions[0]; // Can the question have answers if (!(((QuestionTypeMode)questionRow.TypeMode & QuestionTypeMode.Answerable) > 0) || (((QuestionTypeMode)questionRow.TypeMode & QuestionTypeMode.ChildQuestion) > 0) ) { AnswersDataGrid.Visible = false; AddNewAnswerButton.Visible = false; AnswerOption.Visible = false; MessageLabel.Visible = true; ((PageBase)Page).ShowErrorMessage(MessageLabel, ((PageBase)Page).GetPageResource("SingleQuestionCannotBeEditedMessage")); } else { MultipleSelection = ((QuestionTypeMode)questionRow.TypeMode & QuestionTypeMode.MultipleAnswers) > 0; _ratingEnabled = questionRow.RatingEnabled; _scoreEnabled = _question.Questions[0].IsSurveyIdNull() ? true : new Surveys().IsSurveyScored(SurveyId); AnswersDataGrid.Columns[4].Visible = _ratingEnabled; AnswersDataGrid.Columns[5].Visible = _scoreEnabled; } }
public string FilterName(QuestionData.QuestionsRow q, AnswerData.AnswersRow a, FilterData.FiltersRow f) { const string splitChar = "|"; return(f.FilterId == 0 ? FilterName(q, a, splitChar) : FilterName(q, a, f, splitChar)); }
/// <summary> /// Get a web control instance of the question row /// and adds it with its options to the table /// </summary> private void AddQuestionWebControl(Table questionTable, QuestionData.QuestionsRow question) { QuestionItem questionWebControl = QuestionItemFactory.Create(question, LanguagesDropdownlist.SelectedValue, this.UniqueID, 0, null, true, true); // Set question's style // and bind the data Style questionStyle = new Style(); questionStyle.CssClass = "surveyQuestion"; Style answerStyle = new Style(); answerStyle.CssClass = "surveyAnswer"; //Style markStyle = new Style(); //markStyle.CssClass = "icon-warning-sign"; if (questionWebControl is ActiveQuestion) { ((ActiveQuestion)questionWebControl).EnableClientSideValidation = false; ((ActiveQuestion)questionWebControl).EnableServerSideValidation = false; ((ActiveQuestion)questionWebControl).ValidationMarkStyle.CssClass = "icon-warning-sign"; //GB } if (questionWebControl is SectionQuestion) { ((SectionQuestion)questionWebControl).SectionOptionStyle.CssClass = "questionOptions"; ((SectionQuestion)questionWebControl).ValidationMarkStyle.CssClass = "icon-warning-sign"; //GB } if (questionWebControl is MatrixQuestion) { ((MatrixQuestion)questionWebControl).MatrixHeaderStyle = answerStyle; ((MatrixQuestion)questionWebControl).MatrixItemStyle = answerStyle; ((MatrixQuestion)questionWebControl).MatrixAlternatingItemStyle = answerStyle; ((MatrixQuestion)questionWebControl).ValidationMarkStyle.CssClass = "icon-warning-sign"; //GB } questionWebControl.RenderMode = ControlRenderMode.ReadOnly; questionWebControl.AnswerStyle = answerStyle; questionWebControl.QuestionStyle = questionStyle; questions.Add(questionWebControl); // Add the question and its options to the table questionTable.Rows.Add(BuildQuestionOptionsRow(question)); if (questionWebControl is MatrixQuestion) { // questionWebControl.Width = new Unit(400.0,UnitType.Pixel); questionTable.Rows.Add(BuildRow(questionWebControl)); } else { questionTable.Rows.Add(BuildRow(questionWebControl)); } }
/// <summary> /// Builds a row with the options available to the question /// </summary> /// <returns>a tablerow instance with the options</returns> private TableRow BuildQuestionOptionsRow(QuestionData.QuestionsRow question) { // Creates a new edit options control UpdateVoterQuestionOptionsControl questionOptions = (UpdateVoterQuestionOptionsControl)LoadControl("UserControls/UpdateVoterQuestionOptionsControl.ascx"); questionOptions.Question = question; questionOptions.VoterId = _voterId; return(BuildRow(questionOptions)); }
/// <summary> /// Builds a row with the options available to the question /// </summary> /// <returns>a tablerow instance with the options</returns> private TableRow BuildQuestionOptionsRow(QuestionData.QuestionsRow question) { // Creates a new edit options control QuestionOptionsControl questionOptions = (QuestionOptionsControl)LoadControl("UserControls/QuestionOptionsControl.ascx"); questionOptions.ID = "QuestionOptions_" + question.QuestionId; questionOptions.Question = question; questionOptions.QuestionCount = _questionsData.Questions.Rows.Count; return(BuildRow(questionOptions)); }
private TableRow BuildQuestionOptionsRow(QuestionData.QuestionsRow question) { LibraryQuestionOptionsControl libraryQuestionOptionsControl = (LibraryQuestionOptionsControl)LoadControl("UserControls/LibraryQuestionOptionsControl.ascx"); libraryQuestionOptionsControl.Question = question; libraryQuestionOptionsControl.EventOrderUp += new CommandEventHandler(OnOrderUp); libraryQuestionOptionsControl.EventOrderDown += new CommandEventHandler(OnOrderDown); libraryQuestionOptionsControl.QuestionId = question.QuestionId.ToString(); //libraryQuestionOptionsControl.QuestionHelpText = question.q return(BuildRow(libraryQuestionOptionsControl, "")); }
void EstablishLibraryOrNot() { QuestionData question = new Questions().GetQuestionById(_questionId, LanguagesDropdownlist.SelectedValue); QuestionData.QuestionsRow questionRow = question.Questions[0]; ViewState["LibraryId"] = questionRow.IsLibraryIdNull() ? -1 : questionRow.LibraryId; if (!questionRow.IsLibraryIdNull() && !NSurveyUser.Identity.IsAdmin) { CheckRight(NSurveyRights.ManageLibrary, true); } // Can the question have answers }
/// <summary> /// Insert a new static question to the library /// </summary> public QuestionData AddStaticInformationText(int libraryId, string informationText, string questionIDText) { QuestionData defaultQuestion = this.GetDefaultQuestion(); QuestionData.QuestionsRow row = defaultQuestion.Questions[0]; row.LibraryId = libraryId; row.QuestionText = (informationText.Length > 0xf3c) ? informationText.Substring(0, 0xf3c) : informationText; row.DisplayOrder = 1; row.PageNumber = 1; row.SelectionModeId = 5; row.QuestionIdText = questionIDText; this.AddQuestion(defaultQuestion); return(defaultQuestion); }
/// <summary> /// Creates a new question entity with all /// required default values /// </summary> /// <returns></returns> private QuestionData GetDefaultQuestion() { QuestionData data = new QuestionData(); QuestionData.QuestionsRow row = data.Questions.NewQuestionsRow(); row.ColumnsNumber = 0; row.MinSelectionRequired = 0; row.MaxSelectionAllowed = 0; row.RandomizeAnswers = false; row.RatingEnabled = false; row.QuestionPipeAlias = null; data.Questions.AddQuestionsRow(row); return(data); }
/// <summary> /// Insert a matrix parent question with hardcoded default values /// </summary> /// <param name="surveyId">ID of the survey to which belongs the question</param> /// <param name="displayOrder">Order in which the question will be displayed</param> /// <param name="PageNumber">Page number to which the questions belongs</param> /// <param name="questionText">The main question's text</param> /// <returns>The full matrix parent question</returns> public QuestionData AddDefaultMatrixQuestion(int surveyId, int displayOrder, int pageNumber, string questionText, string questionIDText) { QuestionData defaultQuestion = this.GetDefaultQuestion(); QuestionData.QuestionsRow row = defaultQuestion.Questions[0]; row.SurveyId = surveyId; row.QuestionText = (questionText.Length > 0xf3c) ? questionText.Substring(0, 0xf3c) : questionText; row.DisplayOrder = displayOrder; row.QuestionIdText = questionIDText; row.PageNumber = pageNumber; row.SelectionModeId = 4; this.AddQuestion(defaultQuestion); return(defaultQuestion); }
/// <summary> /// Set the forms to match DB question options /// </summary> private void BindQuestionOptions() { // Retrieve the original question values QuestionData question = new Questions().GetQuestionById(_parentQuestionId, LanguagesDropdownlist.SelectedValue); QuestionData.QuestionsRow questionRow = question.Questions[0]; QuestionExtraLinks1.Initialize(questionRow.SurveyId, questionRow.QuestionId, questionRow.DisplayOrder, questionRow.PageNumber); // // Assign them to the form QuestionFreeTextBox.Text = questionRow.QuestionText; MinSelectionDropDownList.SelectedValue = (questionRow.IsMinSelectionRequiredNull()) ? "0" : questionRow.MinSelectionRequired.ToString(); MaxAllowedDropDownList.SelectedValue = (questionRow.IsMaxSelectionAllowedNull()) ? "0" : questionRow.MaxSelectionAllowed.ToString(); MultipleChoiceCheckbox.Checked = questionRow.SelectionModeId == (int)QuestionSelectionMode.MultiMatrix; RatingCheckbox.Checked = questionRow.RatingEnabled; ViewState["LibrayID"] = questionRow.IsLibraryIdNull() ? -1 : questionRow.LibraryId; if (!questionRow.IsLibraryIdNull() && !NSurveyUser.Identity.IsAdmin) { CheckRight(NSurveyRights.ManageLibrary, true); } QuestionSectionOptionData sectionOptions = new Questions().GetQuestionSectionOptions(_parentQuestionId, LanguagesDropdownlist.SelectedValue); if (sectionOptions.QuestionSectionOptions.Rows.Count > 0) { RepeatSectionCheckbox.Checked = true; RepeatSectionOptionPlaceholder.Visible = true; AddSectionLinkTextBox.Text = sectionOptions.QuestionSectionOptions[0].AddSectionLinkText; DeleteSectionLinkTextBox.Text = sectionOptions.QuestionSectionOptions[0].DeleteSectionLinkText; } else { RepeatSectionCheckbox.Checked = false; RepeatSectionOptionPlaceholder.Visible = false; } RatingCheckbox.Checked = questionRow.RatingEnabled; EnableDisableGroupFields(RatingCheckbox.Checked); BindQuestionGroups(); txtQuestionID.Text = questionRow.QuestionIdText; txtAlias.Text = questionRow.Alias; txtHelpText.Text = questionRow.HelpText; chbShowHelpText.Checked = (questionRow.ShowHelpText != null) ? (bool)questionRow.ShowHelpText : false; }
/// <summary> /// Insert a single question to the library /// </summary> public QuestionData AddDefaultSingleQuestion(int libraryId, string questionText, string questionIdText) { QuestionData defaultQuestion = this.GetDefaultQuestion(); QuestionData.QuestionsRow row = defaultQuestion.Questions[0]; row.LibraryId = libraryId; row.QuestionText = (questionText.Length > 0xf3c) ? questionText.Substring(0, 0xf3c) : questionText; row.DisplayOrder = 1; row.PageNumber = 1; row.SelectionModeId = 1; row.LayoutModeId = 1; row.QuestionIdText = questionIdText; this.AddQuestion(defaultQuestion); return(defaultQuestion); }
/// <summary> /// Insert a new static question /// </summary> /// <param name="surveyId">ID of the survey to which belongs the question</param> /// <param name="displayOrder">Order in which the question will be displayed</param> /// <param name="informationText">Static text</param> /// <returns>The full static question</returns> public QuestionData AddStaticInformationText(int surveyId, int displayOrder, int pageNumber, string informationText, string questionIdText) { if (pageNumber == 0) { pageNumber = 1; } QuestionData defaultQuestion = this.GetDefaultQuestion(); QuestionData.QuestionsRow row = defaultQuestion.Questions[0]; row.SurveyId = surveyId; row.QuestionText = (informationText.Length > 0xf3c) ? informationText.Substring(0, 0xf3c) : informationText; row.DisplayOrder = displayOrder; row.PageNumber = pageNumber; row.SelectionModeId = 5; row.QuestionIdText = questionIdText; this.AddQuestion(defaultQuestion); return(defaultQuestion); }
/// <summary> /// Get a web control instance of the question row /// and adds it with its options to the table /// </summary> private void AddQuestionWebControl(Table questionTable, QuestionData.QuestionsRow question) { QuestionItem questionWebControl = QuestionItemFactory.Create(question, LanguagesDropdownlist.SelectedValue, this.UniqueID, 0, null, true, true); // Set question's style // and bind the data Style questionStyle = new Style(); questionStyle.CssClass = "surveyQuestion"; Style answerStyle = new Style(); answerStyle.CssClass = "surveyAnswer"; Style markStyle = new Style(); if (questionWebControl is ActiveQuestion) { ((ActiveQuestion)questionWebControl).EnableClientSideValidation = false; ((ActiveQuestion)questionWebControl).EnableServerSideValidation = false; } if (questionWebControl is SectionQuestion) { ((SectionQuestion)questionWebControl).SectionOptionStyle.CssClass = "questionOptions"; } if (questionWebControl is MatrixQuestion) { ((MatrixQuestion)questionWebControl).MatrixHeaderStyle = answerStyle; ((MatrixQuestion)questionWebControl).MatrixItemStyle = answerStyle; ((MatrixQuestion)questionWebControl).MatrixAlternatingItemStyle = answerStyle; } questionWebControl.RenderMode = ControlRenderMode.ReadOnly; questionWebControl.AnswerStyle = answerStyle; questionWebControl.QuestionStyle = questionStyle; questions.Add(questionWebControl); // Add the question and its options to the table if (NSurveyUser.Identity.IsAdmin || CheckRight(NSurveyRights.ManageLibrary, false)) { questionTable.Rows.Add(BuildQuestionOptionsRow(question)); } questionTable.Rows.Add(BuildRow(questionWebControl, "")); }
void AddFilter(QuestionData.QuestionsRow q, AnswerData.AnswersRow a, FilterData.FiltersRow p) { FilterData filterData = new FilterData(); FilterData.FiltersRow filterRow = filterData.Filters.NewFiltersRow(); filterRow.LogicalOperatorTypeID = short.Parse(LogicalOperatorDropDownList.SelectedValue); filterRow.Description = FilterName(q, a, p); filterRow.SurveyId = SurveyId; filterRow.ParentFilterId = p.FilterId; filterData.Filters.AddFiltersRow(filterRow); new Filter().AddFilter(filterData); FilterRuleData filterRuleData = new FilterRuleData(); FilterRuleData.FilterRulesRow filterRuleRow = filterRuleData.FilterRules.NewFilterRulesRow(); filterRuleRow.QuestionId = q.QuestionId; filterRuleRow.AnswerId = a.AnswerId; filterRuleRow.FilterId = filterRow.FilterId; filterRuleData.FilterRules.AddFilterRulesRow(filterRuleRow); new Filter().AddRule(filterRuleData); }
public string GetQuestionPart(QuestionData.QuestionsRow q, AnswerData.AnswersRow a) { switch (ddlAutoQuestionNaming.SelectedValue) { case "Question": /* * * if (IsMatrixQuestion(q)) * return TrimSplit((q.ParentQuestionText + splitChar + q.QuestionText + splitChar + q.AnswerText)); * else */ return(TrimSplit(q.QuestionText)); case "QuestionDisplayOrderNumber": /* * if (IsMatrixQuestion(q)) * return TrimSplit(q.DisplayOrder.ToString() + splitChar + q.RowOrder.ToString() + splitChar + q.AnswerText); * else */ return(TrimSplit(q.DisplayOrder.ToString())); case "QuestionID": /* * if (IsMatrixQuestion(q)) * return TrimSplit((q.IsParentQuestionIdTextNull() ? string.Empty : q.ParentQuestionIdText) + * splitChar + q.RowOrder.ToString() + * splitChar + (q.IsAnswerTextNull() ? string.Empty : q.AnswerText)); * else */ return(TrimSplit(q.IsQuestionIdTextNull() ? q.QuestionText : q.QuestionIdText)); case "QuestionAlias": /* * if (IsMatrixQuestion(q)) * return TrimSplit(q.ParentQuestionAliasText.ToString() + splitChar + q.RowOrder.ToString() + splitChar + q.AnswerText); + else */ return(TrimSplit(q.IsAliasNull() ? q.QuestionText : q.Alias)); default: return(TrimSplit("Invalid DDl Value")); } }
private void UpdateQuestionButton_Click(object sender, System.EventArgs e) { if (QuestionFreeTextBox.Text.Length == 0) { MessageLabel.Visible = true; ((PageBase)Page).ShowErrorMessage(MessageLabel, ((PageBase)Page).GetPageResource("MissingQuestionMessage")); } else { // Removes any single paragraph description if (QuestionFreeTextBox.Text.StartsWith("<p>") && QuestionFreeTextBox.Text.EndsWith("</p>") && QuestionFreeTextBox.Text.IndexOf("<p>", 3) < 0) { QuestionFreeTextBox.Text = QuestionFreeTextBox.Text.Substring(3, QuestionFreeTextBox.Text.Length - 7); } // creates a BE and update the question QuestionData question = new QuestionData(); QuestionData.QuestionsRow updatedQuestion = question.Questions.NewQuestionsRow(); // Set the updated fields updatedQuestion.QuestionId = _parentQuestionId; updatedQuestion.SurveyId = getSurveyId(); updatedQuestion.QuestionText = QuestionFreeTextBox.Text.Length > 3900 ? Server.HtmlDecode(QuestionFreeTextBox.Text.Substring(0, 3900)) : Server.HtmlDecode(QuestionFreeTextBox.Text); updatedQuestion.MinSelectionRequired = int.Parse(MinSelectionDropDownList.SelectedValue); updatedQuestion.MaxSelectionAllowed = int.Parse(MaxAllowedDropDownList.SelectedValue); updatedQuestion.RatingEnabled = RatingCheckbox.Checked; updatedQuestion.RandomizeAnswers = false; updatedQuestion.QuestionIdText = txtQuestionID.Text; updatedQuestion.ShowHelpText = chbShowHelpText.Checked; updatedQuestion.Alias = txtAlias.Text; updatedQuestion.HelpText = txtHelpText.Text; updatedQuestion.QuestionIdText = txtQuestionID.Text; updatedQuestion.SetQuestionGroupIDNull(); if (ddlGroup.SelectedIndex != 0) { updatedQuestion.QuestionGroupID = int.Parse(ddlGroup.SelectedValue); } if (ddlSubGroup.SelectedIndex != 0) { updatedQuestion.QuestionGroupID = int.Parse(ddlSubGroup.SelectedValue); } if (MultipleChoiceCheckbox.Checked) { updatedQuestion.SelectionModeId = (int)QuestionSelectionMode.MultiMatrix; } else { updatedQuestion.SelectionModeId = (int)QuestionSelectionMode.Matrix; } question.Questions.AddQuestionsRow(updatedQuestion); new Question().UpdateQuestion(question, LanguagesDropdownlist.SelectedValue); // Matrix can be repeated if (RepeatSectionCheckbox.Checked) { // creates a BE and update the options QuestionSectionOptionData sectionOptions = new QuestionSectionOptionData(); QuestionSectionOptionData.QuestionSectionOptionsRow updatedSectionOption = sectionOptions.QuestionSectionOptions.NewQuestionSectionOptionsRow(); // Set the updated fields updatedSectionOption.QuestionId = _parentQuestionId; updatedSectionOption.RepeatableSectionModeId = (int)RepeatableSectionMode.FullAnswers; updatedSectionOption.DeleteSectionLinkText = DeleteSectionLinkTextBox.Text; updatedSectionOption.AddSectionLinkText = AddSectionLinkTextBox.Text; sectionOptions.QuestionSectionOptions.AddQuestionSectionOptionsRow(updatedSectionOption); new Question().UpdateQuestionSectionOptions(sectionOptions, LanguagesDropdownlist.SelectedValue); } else { new Question().DeleteQuestionSectionOptions(_parentQuestionId); DeleteSectionLinkTextBox.Text = string.Empty; AddSectionLinkTextBox.Text = string.Empty; } MessageLabel.Visible = true; ((PageBase)Page).ShowNormalMessage(MessageLabel, ((PageBase)Page).GetPageResource("OptionsUpdatedMessage")); BindQuestionOptions(); BindAnswerOptions(); } }
public string FilterName(QuestionData.QuestionsRow q, AnswerData.AnswersRow a, FilterData.FiltersRow f, string splitChar) { return(GetSubstr(GetFilterPart(f, splitChar)) + splitChar + FilterName(q, a, splitChar)); }
public string FilterName(QuestionData.QuestionsRow q, AnswerData.AnswersRow a, string splitChar) { return(GetSubstr(GetQuestionPart(q, a)) + splitChar + GetSubstr(GetAnswerPart(a))); }
bool IsMatrixQuestion(QuestionData.QuestionsRow q) { return(false); }
/// <summary> /// Set the forms to match DB question options /// </summary> private void BindQuestionOptions() { // Retrieve the original question values QuestionData question = new Questions().GetQuestionById(_questionId, LanguagesDropdownlist.SelectedValue); QuestionData.QuestionsRow questionRow = question.Questions[0]; QuestionExtraLinks1.Initialize(questionRow.SurveyId, questionRow.QuestionId, questionRow.DisplayOrder, questionRow.PageNumber); // Assign them to the form QuestionFreeTextBox.Text = questionRow.QuestionText; txtQuestionID.Text = questionRow.QuestionIdText; DisplayModeDropDownList.SelectedValue = (questionRow.IsLayoutModeIdNull()) ? ((int)QuestionLayoutMode.Horizontal).ToString() : questionRow.LayoutModeId.ToString(); ColumnDropdownlist.SelectedValue = questionRow.ColumnsNumber.ToString(); SelectionModeDropDownList.SelectedValue = questionRow.SelectionModeId.ToString(); MinSelectionDropDownList.SelectedValue = (questionRow.IsMinSelectionRequiredNull()) ? "0" : questionRow.MinSelectionRequired.ToString(); MaxAllowedDropDownList.SelectedValue = (questionRow.IsMaxSelectionAllowedNull()) ? "0" : questionRow.MaxSelectionAllowed.ToString(); //JL: Enable or disable the Min Max dropdown list depending on selectionmodedropdownlist option selected by user EnableDisableMinMaxDropDownList(); RandomizeCheckBox.Checked = questionRow.RandomizeAnswers; RatingCheckbox.Checked = questionRow.RatingEnabled; RatingCheckbox.Checked = questionRow.RatingEnabled; EnableDisableGroupFields(RatingCheckbox.Checked); BindQuestionGroups(); PipeAliasTextBox.Text = questionRow.QuestionPipeAlias; RandomizeCheckBox.Enabled = !RatingCheckbox.Checked; ViewState["LibraryId"] = questionRow.IsLibraryIdNull() ? -1 : questionRow.LibraryId; if (!questionRow.IsLibraryIdNull() && !NSurveyUser.Identity.IsAdmin) { CheckRight(NSurveyRights.ManageLibrary, true); } // Can the question have answers if (((QuestionTypeMode)questionRow.TypeMode & QuestionTypeMode.Answerable) > 0) { AnswerOptionsPlaceholder.Visible = true; RepeatSectionOptionPlaceHolder.Visible = true; EditAnswersButton.Enabled = true; MultipleSelection = ((QuestionTypeMode)questionRow.TypeMode & QuestionTypeMode.MultipleAnswers) > 0; } else { RepeatSectionOptionPlaceHolder.Visible = false; AnswerOptionsPlaceholder.Visible = false; EditAnswersButton.Enabled = false; new Question().DeleteQuestionSectionOptions(_questionId); } if (questionRow.RatingEnabled) { BindQuestionGroups(); } else { ddlGroup.Enabled = true; ddlSubGroup.Enabled = true; } txtAlias.Text = questionRow.Alias; txtHelpText.Text = questionRow.HelpText; chbShowHelpText.Checked = (questionRow.ShowHelpText) ? (bool)questionRow.ShowHelpText : false; }
private void BindQuestionGroups() { QuestionData question = new Questions().GetQuestionById(_questionId, LanguagesDropdownlist.SelectedValue); QuestionData.QuestionsRow questionRow = question.Questions[0]; int questionGroupId = questionRow.IsQuestionGroupIDNull() ? -1 : (int)questionRow.QuestionGroupID; int selectedQuestionGroupId = -1; QuestionGroupsData data = new Votations.NSurvey.DataAccess.QuestionGroups().GetAll(LanguagesDropdownlist.SelectedValue); DataView groupView = data.DefaultViewManager.CreateDataView(data.Tables[0]); DataView subGroupView = data.DefaultViewManager.CreateDataView(data.Tables[0]); groupView.RowFilter = "ParentGroupId is null"; foreach (QuestionGroupsData.QuestionGroupsRow row in data.Tables[0].Rows) { if (row.ID == questionGroupId) { selectedQuestionGroupId = (row.ParentGroupID != null) ? (int)row.ParentGroupID : questionGroupId; break; } } if (ddlGroup.SelectedIndex > -1 && ddlGroup.SelectedValue != selectedQuestionGroupId.ToString()) { selectedQuestionGroupId = int.Parse(ddlGroup.SelectedValue); } subGroupView.RowFilter = "ParentGroupId = " + selectedQuestionGroupId; ddlGroup.Items.Clear(); ddlGroup.Items.Add(new ListItem(GetPageResource("DdlNoSelect"), "-1")); ddlSubGroup.Items.Clear(); ddlSubGroup.Items.Add(new ListItem(GetPageResource("DdlNoSelect"), "-1")); ddlGroup.DataSource = groupView; ddlGroup.DataTextField = "GroupName"; ddlGroup.DataValueField = "ID"; ddlGroup.DataBind(); ddlSubGroup.DataSource = subGroupView; ddlSubGroup.DataTextField = "GroupName"; ddlSubGroup.DataValueField = "ID"; ddlSubGroup.DataBind(); foreach (ListItem item in ddlGroup.Items) { if (item.Value == selectedQuestionGroupId.ToString()) { item.Selected = true; break; } } foreach (ListItem item in ddlSubGroup.Items) { if (item.Value == questionGroupId.ToString()) { item.Selected = true; break; } } }
private void UpdateQuestionButton_Click(object sender, System.EventArgs e) { if (QuestionFreeTextBox.Text.Length == 0) { MessageLabel.Visible = true; ((PageBase)Page).ShowErrorMessage(MessageLabel, ((PageBase)Page).GetPageResource("MissingQuestionMessage")); } else { // Removes any single paragraph description if (QuestionFreeTextBox.Text.StartsWith("<p>") && QuestionFreeTextBox.Text.EndsWith("</p>") && QuestionFreeTextBox.Text.IndexOf("<p>", 3) < 0) { QuestionFreeTextBox.Text = QuestionFreeTextBox.Text.Substring(3, QuestionFreeTextBox.Text.Length - 7); } // creates a BE and update the question QuestionData question = new QuestionData(); QuestionData.QuestionsRow updatedQuestion = question.Questions.NewQuestionsRow(); // Set the updated fields updatedQuestion.QuestionId = _questionId; updatedQuestion.SurveyId = getSurveyId(); updatedQuestion.QuestionText = QuestionFreeTextBox.Text.Length > 3900 ? Server.HtmlDecode(QuestionFreeTextBox.Text.Substring(0, 3900)) : Server.HtmlDecode(QuestionFreeTextBox.Text); updatedQuestion.ColumnsNumber = int.Parse(ColumnDropdownlist.SelectedValue); updatedQuestion.MinSelectionRequired = int.Parse(MinSelectionDropDownList.SelectedValue); updatedQuestion.MaxSelectionAllowed = int.Parse(MaxAllowedDropDownList.SelectedValue); updatedQuestion.LayoutModeId = byte.Parse(DisplayModeDropDownList.SelectedValue); updatedQuestion.SelectionModeId = byte.Parse(SelectionModeDropDownList.SelectedValue); updatedQuestion.RandomizeAnswers = RatingCheckbox.Checked ? false : RandomizeCheckBox.Checked; updatedQuestion.RatingEnabled = RatingCheckbox.Checked; updatedQuestion.QuestionPipeAlias = PipeAliasTextBox.Text; updatedQuestion.QuestionIdText = txtQuestionID.Text; updatedQuestion.ShowHelpText = chbShowHelpText.Checked; updatedQuestion.Alias = txtAlias.Text; updatedQuestion.HelpText = txtHelpText.Text; updatedQuestion.SetQuestionGroupIDNull(); if (ddlGroup.SelectedIndex != 0) { updatedQuestion.QuestionGroupID = int.Parse(ddlGroup.SelectedValue); } if (ddlSubGroup.SelectedIndex != 0) { updatedQuestion.QuestionGroupID = int.Parse(ddlSubGroup.SelectedValue); } if (!RatingCheckbox.Checked) { updatedQuestion.SetQuestionGroupIDNull(); } question.Questions.AddQuestionsRow(updatedQuestion); new Question().UpdateQuestion(question, LanguagesDropdownlist.SelectedValue); MessageLabel.Visible = true; ((PageBase)Page).ShowNormalMessage(MessageLabel, ((PageBase)Page).GetPageResource("OptionsUpdatedMessage")); BindQuestionOptions(); } }
/// <summary> /// Get a web control instance of the question row /// and adds it with its options to the table /// </summary> private void AddQuestionWebControl(Table questionTable, QuestionData.QuestionsRow question) { QuestionItem questionWebControl; // Set voter answers only on first load to init // question control's answer items if (!Page.IsPostBack) { questionWebControl = QuestionItemFactory.Create(question, null, this.UniqueID, 0, _voterAnswers.VotersAnswers, false); } else { questionWebControl = QuestionItemFactory.Create(question, null, this.UniqueID, 0, null, false); } // Set question's style // and bind the data Style questionStyle = new Style(); questionStyle.CssClass = "surveyQuestion"; Style answerStyle = new Style(); answerStyle.CssClass = "surveyAnswer"; Style markStyle = new Style(); Style validationStyle = new Style(); validationStyle.CssClass = "questionValidationMessageStyleCSS"; Style confirmationStyle = new Style(); confirmationStyle.CssClass = "confirmationMessageStyleCSS"; if (questionWebControl is ActiveQuestion) { ((ActiveQuestion)questionWebControl).AnswerPosted += new AnswerPostedEventHandler(OnAnswerPost); ((ActiveQuestion)questionWebControl).EnableClientSideValidation = false; ((ActiveQuestion)questionWebControl).EnableServerSideValidation = false; ((ActiveQuestion)questionWebControl).ValidationMessageStyle = validationStyle; ((ActiveQuestion)questionWebControl).ConfirmationMessageStyle = confirmationStyle; } if (questionWebControl is SectionQuestion) { ((SectionQuestion)questionWebControl).SectionOptionStyle.CssClass = "questionOptions"; } if (questionWebControl is MatrixQuestion) { ((MatrixQuestion)questionWebControl).MatrixHeaderStyle = answerStyle; ((MatrixQuestion)questionWebControl).MatrixStyle = answerStyle; ((MatrixQuestion)questionWebControl).MatrixItemStyle = answerStyle; ((MatrixQuestion)questionWebControl).MatrixAlternatingItemStyle = answerStyle; } if (questionWebControl is SectionQuestion) { ((SectionQuestion)questionWebControl).SectionGridAnswersItemStyle = answerStyle; ((SectionQuestion)questionWebControl).SectionGridAnswersHeaderStyle = answerStyle; ((SectionQuestion)questionWebControl).SectionGridAnswersAlternatingItemStyle = answerStyle; ((SectionQuestion)questionWebControl).SectionGridAnswersStyle = answerStyle; ((SectionQuestion)questionWebControl).EnableGridSectionClientSideValidation = false; ((SectionQuestion)questionWebControl).EnableGridSectionServerSideValidation = false; } questionWebControl.RenderMode = ControlRenderMode.Edit; questionWebControl.AnswerStyle = answerStyle; questionWebControl.QuestionStyle = questionStyle; questions.Add(questionWebControl); // Add the question and its options to the table questionTable.Rows.Add(BuildQuestionOptionsRow(question)); questionTable.Rows.Add(BuildRow(questionWebControl)); }
public static QuestionItem Create(QuestionData.QuestionsRow question, string languageCode, string parentControlUniqueID, int questionRandomSeed, VoterAnswersData.VotersAnswersDataTable voterAnswersState, bool enableAnswerDefaults, bool isDesignMode = false) { QuestionItem item; if ((question.TypeAssembly.Length == 0) || (question.TypeAssembly == null)) { throw new ApplicationException("Could not create an instance because the question data has no assembly type specified"); } try { item = (QuestionItem)Assembly.Load(question.TypeAssembly).CreateInstance(question.TypeNameSpace); } catch (InvalidCastException) { throw new InvalidCastException("Concrete type " + question.TypeNameSpace + " is not a child of the questionitem abstract class"); } catch (NullReferenceException) { throw new InvalidCastException("specfied type " + question.TypeNameSpace + " could not be found in the specifed assembly " + question.TypeAssembly); } item.ID = "Question" + question.QuestionId.ToString(); item.QuestionId = question.QuestionId; item.Text = new PipeManager().PipeValuesInText(question.QuestionId, question.QuestionText + ((question.ShowHelpText && !isDesignMode)?( question.IsHelpTextNull()?string.Empty: HelpTextInSmallFont(question.HelpText)):string.Empty)//JJSurveyBoxChange , voterAnswersState, languageCode); item.LanguageCode = languageCode; item.QuestionId_Text = question.QuestionIdText; item.HelpText = question.HelpText; SectionQuestion question2 = item as SectionQuestion; if ((question2 != null) && (question.RepeatableSectionModeId != 0)) { question2.RepeatMode = (RepeatableSectionMode)question.RepeatableSectionModeId; question2.MaxSections = question.MaxSections; question2.GridAnswers = new Questions().GetQuestionSectionGridAnswers(question.QuestionId); if ((question.AddSectionLinkText != null) && (question.AddSectionLinkText.Length > 0)) { question2.AddSectionLinkText = question.AddSectionLinkText; } if ((question.DeleteSectionLinkText != null) && (question.DeleteSectionLinkText.Length > 0)) { question2.DeleteSectionLinkText = question.DeleteSectionLinkText; } if ((question.EditSectionLinkText != null) && (question.EditSectionLinkText.Length > 0)) { question2.EditSectionLinkText = question.EditSectionLinkText; } if ((question.UpdateSectionLinkText != null) && (question.UpdateSectionLinkText.Length > 0)) { question2.UpdateSectionLinkText = question.UpdateSectionLinkText; } } SingleQuestion question3 = item as SingleQuestion; if (question3 != null) { question3.VoterAnswersState = voterAnswersState; question3.EnableAnswersDefault = enableAnswerDefaults; question3.MinSelectionRequired = question.MinSelectionRequired; question3.MaxSelectionAllowed = question.MaxSelectionAllowed; question3.ColumnsNumber = question.ColumnsNumber; question3.LayoutMode = question.IsLayoutModeIdNull() ? QuestionLayoutMode.Vertical : ((QuestionLayoutMode)question.LayoutModeId); if (question.RandomizeAnswers) { question3.DataSource = new Answers().GetRandomAnswers(question.QuestionId, questionRandomSeed, languageCode); return(question3); } question3.DataSource = new Answers().GetAnswers(question.QuestionId, languageCode); return(question3); } MatrixQuestion question4 = item as MatrixQuestion; if (question4 != null) { question4.VoterAnswersState = voterAnswersState; question4.EnableAnswersDefault = enableAnswerDefaults; question4.MinSelectionRequired = question.MinSelectionRequired; question4.MaxSelectionAllowed = question.MaxSelectionAllowed; question4.DataSource = new Questions().GetMatrixChildQuestions(question.QuestionId, languageCode); return(question4); } return(item); }