示例#1
0
        public override void WriteHtml(string controlPrefix, CustomQuestionProperties props, TextWriter writer)
        {
            // Writes the HTML UI of the current state of the question. Non-HTML must be appropriately encoded.

            writer.Write("<input name=\"");
            writer.Write(controlPrefix);
            writer.Write("\" value=\"");
            writer.Write(WebUtility.HtmlEncode(props.GetAttributeString(_valueGuid) ?? ""));
            writer.Write("\" />");
        }
 public override bool HasBeenAnswered(CustomQuestionProperties props)
 {
     if (props.ContainsAttribute(_valueGuid))
     {
         return(!string.IsNullOrEmpty(props.GetAttributeString(_valueGuid)));
     }
     else
     {
         return(false);
     }
 }
 public override void InitialiseInputs(CustomQuestionProperties props)
 {
     props.UpdateAttribute(_manualChangeFlagGuid, false);
     props.UpdateAttribute(_parentChangeFlagGuid, false);
     foreach (CustomQuestionInput input in props.QuestionInputs)
     {
         if (input.InputTypeId == _maxLengthGuid)
         {
             int maxLength = 0;
             if (int.TryParse(input.Value, out maxLength))
             {
                 props.UpdateAttribute(_maxLengthGuid, maxLength);
             }
         }
         if (input.InputTypeId == _defaultValueGuid)
         {
             props.UpdateAttribute(_valueGuid, input.Value.ToString());
         }
     }
 }
        public override void WriteHtml(string controlPrefix, CustomQuestionProperties props, TextWriter writer)
        {
            writer.Write("<input type=\"password\" name=\"");
            writer.Write(controlPrefix);
            writer.Write("\" id=\"");
            writer.Write(controlPrefix);
            writer.Write("\"");
            if (!string.IsNullOrEmpty(props.GetAttributeString(_maxLengthGuid)))
            {
                writer.Write(" maxlength=\"");
                writer.Write(WebUtility.HtmlEncode(props.GetAttributeString(_maxLengthGuid)));
                writer.Write("\"");
            }
            if (!string.IsNullOrEmpty(props.GetAttributeString(_valueGuid)))
            {
                writer.Write(" value=\"");
                writer.Write(WebUtility.HtmlEncode(props.GetAttributeString(_valueGuid)));
                writer.Write("\"");
            }
            if (props.Question.IsRealtimeParentQuestion)
            {
                writer.Write(" onblur=\"if ($('#" + controlPrefix + "_change').val() == '1') {" + TRIGGER_REFRESH + "}\"");
            }
            writer.Write(" />");

            if (props.Question.IsRealtimeParentQuestion)
            {
                writer.Write("<input type=\"hidden\" id=\"" + controlPrefix + "_change\" name=\"" + controlPrefix + "_change\" value=\"0\" />");
                writer.Write("<script type=\"text/javascript\">");
                writer.Write("$('#" + controlPrefix + "').on('change', function() { $('#" + controlPrefix + "_change').val('1'); });");
                writer.Write("$('#" + controlPrefix + "').on('keydown', function(e) ");
                writer.Write("{ ");
                writer.Write("    var code = e.keyCode || e.which;");
                writer.Write("    if (code != '9' && code != '16')");
                writer.Write("        $('#" + controlPrefix + "_change').val('1'); ");
                writer.Write("});");
                writer.Write("</script>");
            }
            props.UpdateAttribute(_parentChangeFlagGuid, false);
        }
 public override void InputChanged(CustomQuestionInput input, object oldValue, CustomQuestionProperties props)
 {
     if (input.InputTypeId == _defaultValueGuid)
     {
         if (!(bool)props.GetAttributeBool(_manualChangeFlagGuid))
         {
             props.UpdateAttribute(_valueGuid, input.Value);
             props.UpdateAttribute(_parentChangeFlagGuid, true);
         }
     }
     else if (input.InputTypeId == _maxLengthGuid)
     {
         props.UpdateAttribute(_maxLengthGuid, input.Value);
     }
 }
 public override void ReadAnswerFileNode(System.Xml.Linq.XElement answerFileNode, CustomQuestionProperties props)
 {
     foreach (System.Xml.Linq.XAttribute xmlAttribute in answerFileNode.Attributes())
     {
         if (string.Equals(xmlAttribute.Name.ToString(), _valueGuid.ToString(), StringComparison.OrdinalIgnoreCase))
         {
             string savedValue = xmlAttribute.Value;
             if (savedValue != props.GetAttributeString(_valueGuid))
             {
                 props.UpdateAttribute(_manualChangeFlagGuid, true);
             }
             props.UpdateAttribute(_valueGuid, savedValue);
         }
     }
 }
 public override void FillAnswerFileNode(System.Xml.Linq.XElement answerFileNode, CustomQuestionProperties props)
 {
     if (props.ContainsAttribute(_valueGuid))
     {
         answerFileNode.Add(new System.Xml.Linq.XAttribute(_valueGuid.ToString(), props.GetAttributeString(_valueGuid)));
     }
 }
 public override void UpdateAttributes(string controlPrefix, NameValueCollection postedFormValues, CustomQuestionProperties props)
 {
     if (!(bool)props.GetAttributeBool(_parentChangeFlagGuid))
     {
         if (props.GetAttribute(_valueGuid) as string != postedFormValues[controlPrefix])
         {
             props.UpdateAttribute(_manualChangeFlagGuid, true);
         }
         props.UpdateAttribute(_valueGuid, postedFormValues[controlPrefix]);
     }
 }
 // Not needed, but here for demonstration purposes
 public override bool IsValid(CustomQuestionProperties props, ref string validationMessage)
 {
     return(true);
 }
示例#10
0
        public override void UpdateAttributes(string controlPrefix, NameValueCollection postedFormValues, CustomQuestionProperties props)
        {
            // Updates the question attribute value from the form

            props.UpdateAttribute(_valueGuid, postedFormValues[controlPrefix]);
        }