I have had a request from above to have a date picker icon to the right of an input field, at the moment its an empty input field with the only indicator the label saying its a date field.
How can I add to the code below, to add a date picker to the right, if it is possible.
var div = new TagBuilder("div");
var dateTag = new TagBuilder("input");
dateTag.AddCssClass("dateinput text-box single-line");
dateTag.Attributes["data-include-time"] = includeTime.ToString();
dateTag.Attributes["autocomplete"] = "off";
dateTag.Attributes["readonly"] = "readonly";
dateTag.Attributes["data-hiddenfield"] = "hdn" + fieldName;
AddAdditionalAttributes(dateTag, additionalHtmlAttributes);
var hiddenValueTag = new TagBuilder("input");
hiddenValueTag.AddCssClass("dateinputvalue");
hiddenValueTag.Attributes["id"] = "hdn" + fieldName;
hiddenValueTag.Attributes["type"] = "hidden";
hiddenValueTag.Attributes["name"] = fieldName;
div.InnerHtml = dateTag.ToString() + "date_icon_in_here" + hiddenValueTag.ToString();
return new MvcHtmlString(div.ToString(TagRenderMode.Normal));
I’m thinking something along these lines, by adding a new span after the input as then wondering if there a way to add the datepicker as the span value, but not sure
var div = new TagBuilder("div");
var dateTag = new TagBuilder("input");
dateTag.AddCssClass("dateinput text-box single-line");
dateTag.Attributes["data-include-time"] = includeTime.ToString();
dateTag.Attributes["autocomplete"] = "off";
dateTag.Attributes["readonly"] = "readonly";
dateTag.Attributes["data-hiddenfield"] = "hdn" + fieldName;
var datePickerIcon = new TagBuilder("span");
datePickerIcon.AddCssClass("datepickerIcon");
datePickerIcon.InnerHtml.ToString("<img src='Images/Shared/DatePicker.png'>");
AddAdditionalAttributes(dateTag, additionalHtmlAttributes);
var hiddenValueTag = new TagBuilder("input");
hiddenValueTag.AddCssClass("dateinputvalue");
hiddenValueTag.Attributes["id"] = "hdn" + fieldName;
hiddenValueTag.Attributes["type"] = "hidden";
hiddenValueTag.Attributes["name"] = fieldName;
div.InnerHtml = dateTag.ToString() + datePickerIcon.ToString() + hiddenValueTag.ToString();
return new MvcHtmlString(div.ToString(TagRenderMode.Normal));
The InnerHtml bit isn’t an option by the looks as getting a red squiggly line beneath the img src bit in the inverted commas
Ok I have managed to get the icon to show inside the span, and sitting alongside the input. So now I need I suppose to work out the trigger of clicking one class and populating the input class with the date value, umm
var div = new TagBuilder("div");
var dateTag = new TagBuilder("input");
dateTag.AddCssClass("dateinput text-box single-line");
dateTag.Attributes["data-include-time"] = includeTime.ToString();
dateTag.Attributes["autocomplete"] = "off";
dateTag.Attributes["readonly"] = "readonly";
dateTag.Attributes["data-hiddenfield"] = "hdn" + fieldName;
var datePickerIcon = new TagBuilder("span");
datePickerIcon.AddCssClass("datepickerIcon");
datePickerIcon.Attributes["data-include-time"] = includeTime.ToString();
datePickerIcon.InnerHtml = "<img src='Images/Shared/datePicker_Icon.jpg'>";
AddAdditionalAttributes(dateTag, additionalHtmlAttributes);
var hiddenValueTag = new TagBuilder("input");
hiddenValueTag.AddCssClass("dateinputvalue");
hiddenValueTag.Attributes["id"] = "hdn" + fieldName;
hiddenValueTag.Attributes["type"] = "hidden";
hiddenValueTag.Attributes["name"] = fieldName;
div.InnerHtml = dateTag.ToString() + datePickerIcon + hiddenValueTag.ToString();
return new MvcHtmlString(div.ToString(TagRenderMode.Normal))