/// <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; }
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); }