protected void AssignSubmitButton(string button = null) { SubmitElement submit = null; if (button != null) { if (button.StartsWith("#")) { string id = button.Substring(1); submit = SubmitElements.Where(s => s.Id == id).FirstOrDefault(); } else { submit = SubmitElements.Where(s => s.Name == button).FirstOrDefault(); } } else if (SubmitElements.Count > 0) { submit = SubmitElements[0]; } if (submit != null) { Values[submit.Name] = submit.Value; } }
protected void ParseInputs(HtmlNode formNode) { foreach (HtmlNode inputNode in formNode.SelectNodes(".//*") ?? Enumerable.Empty <HtmlNode>()) { string id = inputNode.GetAttributeValue("id", null); if (inputNode.Name == "input") { string type = inputNode.GetAttributeValue("type", "text"); string value = inputNode.GetAttributeValue("value", null); string name = inputNode.GetAttributeValue("name", null); if (name != null) { if (type == "submit") { // Register submit buttons if (value != null) { SubmitElements.Add(new SubmitElement { Name = name, Value = value, Id = id }); } } else if (type == "radio") { string isChecked = inputNode.GetAttributeValue("checked", null); if (isChecked != null && value != null) { Values[name] = value; } } else { // Set default values for input if (value != null) { Values[name] = value; } } } } else if (inputNode.Name == "textarea") { string name = inputNode.GetAttributeValue("name", null); string value = inputNode.InnerText; if (value != null && name != null) { Values[name] = value; } } else if (inputNode.Name == "select") { string name = inputNode.GetAttributeValue("name", null); if (name != null) { foreach (HtmlNode optionNode in inputNode.SelectNodes(".//option") ?? Enumerable.Empty <HtmlNode>()) { string value = optionNode.GetAttributeValue("value", null); string selected = optionNode.GetAttributeValue("selected", null); if (selected != null && value != null) { Values[name] = value; } } } } } }