/// <summary>
 /// Raise the AnswerPosted event
 /// </summary>
 void IPostBackDataHandler.RaisePostDataChangedEvent()
 {
     this._isSelectionRequired = this.MinSelectionsRequired(this._questionEventArgs.Answers);
     this._isSelectionOverflow = this.MaxSelectionsReached(this._questionEventArgs.Answers);
     if (this.EnableServerSideValidation)
     {
         if (this.IsSelectionRequired)
         {
             this.OnSelectionRequired(this._questionEventArgs);
         }
         else if (this.IsSelectionOverflow)
         {
             this.OnSelectionOverflow(this._questionEventArgs);
         }
         else if (this.HasInvalidAnswers)
         {
             QuestionItemInvalidAnswersEventArgs e = new QuestionItemInvalidAnswersEventArgs();
             e.InvalidItems = this._invalidAnswerItems;
             this.OnInvalidAnswers(e);
         }
         else if (this._questionEventArgs.Answers.Count > 0)
         {
             this.PostedAnswersHandler(this._questionEventArgs.Answers);
             this.OnAnswersPost(this._questionEventArgs);
         }
     }
     else
     {
         this.PostedAnswersHandler(this._questionEventArgs.Answers);
         this.OnAnswersPost(this._questionEventArgs);
     }
 }
 /// <summary>
 /// Post an event when there are invalid server side checked answers
 /// </summary>
 /// <param name="e">Question's invalid answers args</param>
 protected virtual void OnInvalidAnswers(QuestionItemInvalidAnswersEventArgs e)
 {
     if (this.InvalidAnswers != null)
     {
         this.InvalidAnswers(this, e);
     }
 }
 /// <summary>
 /// Set the control SelectionsAreRequired flag to true
 /// and stores the sender for futher processing
 /// </summary>
 /// <param name="sender">The question that raised the event</param>
 /// <param name="e">Answers, if any, posted with the question</param>
 protected virtual void OnInvalidAnswers(object sender, QuestionItemInvalidAnswersEventArgs e)
 {
     if (sender is QuestionItem)
     {
         this._selectionsAreRequired = true;
     }
 }
 /// <summary>
 /// Raise the AnswerPosted event
 /// </summary>
 void IPostBackDataHandler.RaisePostDataChangedEvent()
 {
     this._isSelectionRequired = this.MinSelectionsRequired(this._questionEventArgs.Answers);
     this._isSelectionOverflow = this.MaxSelectionsReached(this._questionEventArgs.Answers);
     if (this.EnableServerSideValidation)
     {
         if (this.IsSelectionRequired)
         {
             this.OnSelectionRequired(this._questionEventArgs);
         }
         else if (this.IsSelectionOverflow)
         {
             this.OnSelectionOverflow(this._questionEventArgs);
         }
         else if (this.HasInvalidAnswers)
         {
             QuestionItemInvalidAnswersEventArgs e = new QuestionItemInvalidAnswersEventArgs();
             e.InvalidItems = this._invalidAnswerItems;
             this.OnInvalidAnswers(e);
         }
         else if (this._questionEventArgs.Answers.Count > 0)
         {
             this.PostedAnswersHandler(this._questionEventArgs.Answers);
             this.OnAnswersPost(this._questionEventArgs);
         }
     }
     else
     {
         this.PostedAnswersHandler(this._questionEventArgs.Answers);
         this.OnAnswersPost(this._questionEventArgs);
     }
 }
 /// <summary>
 /// Post an event when there are invalid server side checked answers
 /// </summary>
 /// <param name="e">Question's invalid answers args</param>
 protected virtual void OnInvalidAnswers(QuestionItemInvalidAnswersEventArgs e)
 {
     if (this.InvalidAnswers != null)
     {
         this.InvalidAnswers(this, e);
     }
 }