コード例 #1
0
        /// <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;
        }
コード例 #2
0
        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);
        }