views:

229

answers:

1

Ok, my title doesn't help. But read the post and you'll understand.

What i want to do:

Imagine I have a Flyer table with 2 columns in my SQl Server:

  • FlyerID (int)(PK)
  • FlyerDate (smalldatetime)

FlyerID is a foreign key on other tables, for example Store table. Store has 3 columns:

  • StoreID (int)(PK)
  • Name (nvarchar)
  • FlyerID (int)(FK) relationship with Flyer table

Now, at the DynamicData site, I will have the Stores page and the Flyers page. I want to display FlyerDate using my custom format. The format is MMM-dd-yyyy, for example.

At the Flyers page, the way I implemented following the tutorial video at: asp.net/learn/3.5-SP1/video-291.aspx works perfectly, displaying my custom format for the FlyerDate column.

At the Stores page however, the Flyer column values (which are hyperlinks) don't show the date in my custom format. Also, in the Filter (dropdown list) doesn't show custom format.

Suggested Failed Solution at: http://ericphan.info/development/asp-net-dynamic-data-display-custom-text-in-a-foreign-key-dropdownlist-combobox gives error "The display column 'DisplayDate' specified for the table does not exist."

.Net Framework 4.0 BETA and 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; }
}
A: 

I know what it should be done. Override ToString:

public partial class Flyer
{

    public override string ToString()
    {
        return this.FlyerDate.ToString("MMM-dd-yyyy");
    }

}
Fabio