Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ViewData["TARGET_DATE"] = new SelectList((from n in _db.ACTION_PLANs select n).ToList(), "TARGET_DATE", "TARGET_DATE");
- <td><%=Html.DropDownList("TARGET_DATE", "All")%></td>
- @Html.DropDownFor(
- o => o.SomeProperty,
- new FormattableSelectList(ViewBag.MyItems, "ID", "Time", "{0:f}"),
- "Choose a Time"
- )
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Web;
- using System.Web.Mvc;
- using System.Collections;
- using System.Web.UI;
- using System.Globalization;
- public class FormattableSelectList : SelectList
- {
- private string _FormatString;
- public FormattableSelectList(IEnumerable items, string dataValueField, string dataTextField, string formatString)
- : base(items, dataValueField, dataTextField)
- {
- _FormatString = formatString;
- }
- public FormattableSelectList(IEnumerable items, string dataValueField, string dataTextField, string formatString, object selectedValue)
- : base(items, dataValueField, dataTextField, selectedValue)
- {
- _FormatString = formatString;
- }
- public override IEnumerator<SelectListItem> GetEnumerator()
- {
- return ((!String.IsNullOrEmpty(DataValueField)) ?
- GetListItemsWithValueField() :
- GetListItemsWithoutValueField()).GetEnumerator();
- }
- private IList<SelectListItem> GetListItemsWithValueField()
- {
- HashSet<string> selectedValues = new HashSet<string>(StringComparer.OrdinalIgnoreCase);
- if (SelectedValues != null)
- {
- selectedValues.UnionWith(from object value in SelectedValues select Convert.ToString(value, CultureInfo.CurrentCulture));
- }
- var listItems = from object item in Items
- let value = Eval(item, DataValueField, null)
- select new SelectListItem
- {
- Value = value,
- Text = Eval(item, DataTextField, _FormatString),
- Selected = selectedValues.Contains(value)
- };
- return listItems.ToList();
- }
- private IList<SelectListItem> GetListItemsWithoutValueField()
- {
- HashSet<object> selectedValues = new HashSet<object>();
- if (SelectedValues != null)
- {
- selectedValues.UnionWith(SelectedValues.Cast<object>());
- }
- var listItems = from object item in Items
- select new SelectListItem
- {
- Text = Eval(item, DataTextField, _FormatString),
- Selected = selectedValues.Contains(item)
- };
- return listItems.ToList();
- }
- private static string Eval(object container, string expression, string formatString)
- {
- object value = container;
- if (!String.IsNullOrEmpty(expression))
- {
- value = DataBinder.Eval(container, expression);
- }
- string stringValue;
- if (formatString == null)
- {
- stringValue = Convert.ToString(value, CultureInfo.CurrentCulture);
- }
- else
- {
- stringValue = String.Format(formatString, value);
- }
- return stringValue;
- }
- }
- [Display(Name = "Time (From):")]
- public int FromTimeId { get; set; }
- [Display(Name = "Time (To):")]
- public int ToTimeId { get; set; }
- public virtual FromTime FromTime { get; set; }
- public virtual ToTime ToTime { get; set; }
- public ActionResult Create()
- {
- ViewBag.FromTimes = db.FromTimes;
- ViewBag.ToTimes = db.ToTimes;
- }
- <div class="editor-field">
- @Html.DropDownListFor(model => model.FromTimeId, new Namespace.FormattableSelectList(ViewBag.FromTimes, "FromTimeId", "FromTimeName", "{0:h:mm tt}"))<br />
- @Html.ValidationMessageFor(model => model.FromTimeId)
- </div>
- </td>
- <td>
- <div class="editor-label">
- @Html.LabelFor(model => model.ToTimeId, "To Time:")
- </div>
- <div class="editor-field">
- @Html.DropDownListFor(model => model.ToTimeId, new Namespace.FormattableSelectList(ViewBag.ToTimes, "ToTimeId", "ToTimeName", "{0:h:mm tt}"))<br />
- @Html.ValidationMessageFor(model => model.ToTimeId)
- </div>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement