Хорошо, мой заголовок не помогает. Но прочитайте пост, и вы поймете.
Что я хочу сделать:
Представьте, что у меня есть таблица Flyer с 2 столбцами на моем сервере SQl:
- FlyerID (int) (PK)
- FlyerDate (smalldatetime)
FlyerID - это внешний ключ для других таблиц, например для таблицы Store. Магазин имеет 3 столбца:
- StoreID (int) (PK)
- Имя (nvarchar)
- FlyerID (int) (FK) отношения с
Флаер стол
Теперь на сайте DynamicData у меня будет страница «Магазины» и «Листовки». Я хочу отобразить FlyerDate, используя мой собственный формат. Формат MMM-дд-гггг, например.
На странице Flyers способ, который я реализовал после видео-урока по адресу: asp.net/learn/3.5-SP1/video-291.aspx
, отлично работает, отображая мой собственный формат для столбца FlyerDate.
На странице «Магазины», однако, значения столбца Flyer (которые являются гиперссылками) не показывают дату в моем произвольном формате. Также в фильтре (выпадающий список) не отображается пользовательский формат.
Рекомендованное сбойное решение по адресу: http://ericphan.info/development/asp-net-dynamic-data-display-custom-text-in-a-foreign-key-dropdownlist-combobox выдает ошибку "Указанный для таблицы столбец отображения 'DisplayDate' не существует."
.Net Framework 4.0 BETA и Entity Framework.
[DisplayColumn("DisplayDate", "FlyerDate", true)]
[MetadataType(typeof(FlyerMetadata))]
public partial class Flyer
{
[ScaffoldColumn(true)]
public string DisplayDate
{
get { return this.FlyerDate.ToString("MMM-dd-yyyy"); }
}
}
public class FlyerMetadata
{
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:MMM-dd-yyyy}")]
public DateTime FlyerDate { get; set; }
}