public override string ToString(Forms.DisplayMedium medium) { // This will be a complicated mishmash of javascript HiddenField modeHiddenField = new HiddenField(name + "--mode"); modeHiddenField.Class = "date-mode"; modeHiddenField.Value = "forms"; TextBox dateExpressionTextBox = new TextBox(name + "--expression"); //dateExpressionTextBox.IsVisible = false; dateExpressionTextBox.Script.OnChange = "ParseDatePicker('" + name + "--expression" + "', " + (int)medium + ")"; dateExpressionTextBox.Width.Length = Width.Length * 0.4F; dateExpressionTextBox.Width.Unit = Width.Unit; if (medium == DisplayMedium.Mobile) { dateExpressionTextBox.Type = InputType.Date; } TextBox timeExpressionTextBox = new TextBox(name + "--time"); //timeExpressionTextBox.IsVisible = false; timeExpressionTextBox.Script.OnChange = "ParseTimePicker('" + name + "--time" + "')"; timeExpressionTextBox.Width.Length = Width.Length * 0.4F; timeExpressionTextBox.Width.Unit = Width.Unit; if (medium == DisplayMedium.Mobile) { timeExpressionTextBox.Type = InputType.Time; } SelectBox dateYearsSelectBox = new SelectBox(name + "--date-year"); SelectBox dateMonthsSelectBox = new SelectBox(name + "--date-month"); SelectBox dateDaysSelectBox = new SelectBox(name + "--date-day"); SelectBox dateHoursSelectBox = new SelectBox(name + "--date-hour"); SelectBox dateMinutesSelectBox = new SelectBox(name + "--date-minute"); SelectBox dateSecondsSelectBox = new SelectBox(name + "--date-second"); for (int i = DateTime.Now.AddYears(-30).Year; i < DateTime.Now.AddYears(5).Year; i++) { dateYearsSelectBox.Add(new SelectBoxItem(i.ToString(), i.ToString())); } for (int i = 1; i < 13; i++) { dateMonthsSelectBox.Add(new SelectBoxItem(i.ToString(), core.Functions.IntToMonth(i))); dateMonthsSelectBox.Add(new SelectBoxItem(i.ToString(), i.ToString())); } for (int i = 1; i < 32; i++) { dateDaysSelectBox.Add(new SelectBoxItem(i.ToString(), i.ToString())); } for (int i = 0; i < 24; i++) { dateHoursSelectBox.Add(new SelectBoxItem(i.ToString(), i.ToString())); } for (int i = 0; i < 60; i++) { dateMinutesSelectBox.Add(new SelectBoxItem(i.ToString(), i.ToString())); } for (int i = 0; i < 60; i++) { dateSecondsSelectBox.Add(new SelectBoxItem(i.ToString(), i.ToString())); } dateYearsSelectBox.SelectedKey = value.Year.ToString(); dateMonthsSelectBox.SelectedKey = value.Month.ToString(); dateDaysSelectBox.SelectedKey = value.Day.ToString(); if (medium == DisplayMedium.Mobile) { dateExpressionTextBox.Value = value.ToString("yyyy-MM-dd"); } else { dateExpressionTextBox.Value = value.ToString("dd/MM/yyyy"); } timeExpressionTextBox.Value = value.ToString("HH:mm:ss"); /* Build display */ StringBuilder sb = new StringBuilder(); if (medium == DisplayMedium.Mobile) { sb.AppendLine("<div class=\"date-field\">"); sb.AppendLine(modeHiddenField.ToString()); sb.AppendLine("<p id=\"" + name + "[date-field]\" class=\"date-exp\" style=\"display: none;\">"); sb.Append(core.Prose.GetString("DATE") + ": "); sb.Append(dateExpressionTextBox.ToString()); if (ShowTime) { sb.Append(" " + core.Prose.GetString("TIME") + ": "); sb.Append(timeExpressionTextBox.ToString()); } sb.Append("</p>"); sb.AppendLine("</div>"); } else { sb.AppendLine("<div class=\"date-field\">"); sb.AppendLine(modeHiddenField.ToString()); sb.AppendLine("<p id=\"" + name + "[date-drop]\" class=\"date-drop\">"); sb.Append(core.Prose.GetString("YEAR") + ": "); sb.AppendLine(dateYearsSelectBox.ToString()); sb.AppendLine(" " + core.Prose.GetString("MONTH") + ": "); sb.AppendLine(dateMonthsSelectBox.ToString()); sb.AppendLine(" " + core.Prose.GetString("DAY") + ": "); sb.AppendLine(dateDaysSelectBox.ToString()); if (showTime) { sb.AppendLine(" " + core.Prose.GetString("HOUR") + ": "); sb.AppendLine(dateHoursSelectBox.ToString()); sb.AppendLine(" " + core.Prose.GetString("MINUTE") + ": "); sb.AppendLine(dateMinutesSelectBox.ToString()); if (showSeconds) { sb.AppendLine(" " + core.Prose.GetString("SECOND") + ": "); sb.AppendLine(dateSecondsSelectBox.ToString()); } } sb.Append("</p>"); sb.AppendLine("<p id=\"" + name + "[date-field]\" class=\"date-exp\" style=\"display: none;\">"); sb.Append(core.Prose.GetString("DATE") + ": "); sb.Append(dateExpressionTextBox.ToString()); if (ShowTime) { sb.Append(" " + core.Prose.GetString("TIME") + ": "); sb.Append(timeExpressionTextBox.ToString()); } sb.Append("</p>"); sb.AppendLine("</div>"); sb.AppendLine("<script type=\"text/javascript\">//<![CDATA["); sb.AppendLine("dtp.push(Array(\"" + name + "[date-drop]\",\"" + name + "[date-field]\"));"); sb.AppendLine("EnableDateTimePickers();"); sb.AppendLine("//]]></script>"); } return sb.ToString(); }