Określa typ danych kolumny źródła danych "CreateDate". Upewnij się, że tworzy rzeczywiste pole datetime, a nie coś takiego jak varchar. Jeśli źródło danych jest procedura przechowywana, to całkiem możliwe, że CreateDate jest przetwarzane w celu wytworzenia varchar, aby sformatować datę, jak w przykładzie:
SELECT CONVERT(varchar,TableName.CreateDate,126) AS CreateDate
FROM TableName ...
Korzystanie CONVERT jak to często zrobić, aby wyniki kwerendy wypełnij wymagania każdego innego kodu, który będzie przetwarzał te wyniki. Styl 126 to format ISO 8601, międzynarodowy standard, który działa z dowolnym ustawieniem języka. Nie wiem, jaka jest twoja branża, ale to było prawdopodobnie zamierzone. Nie chcesz z tym mieszać. Ten styl (126) tworzy ciąg znaków przedstawiający datę w postaci "2013-04-29T18: 15: 20.270", tak jak opisałeś! Jeśli jednak CreateDate został przetworzony w ten sposób, nie ma możliwości, aby twój plik bf1.DataFormatString wyświetlił "29/04/2013". Najpierw należy rozpocząć od kolumny typu datetime w oryginalnym źródle danych SQL, aby bf1 poprawnie ją wykorzystał.Więc po prostu dodać go do kwerendy źródeł danych, i nazywają go pod inną nazwą jak CreateDate2 tak aby nie przeszkadzać cokolwiek innego kodu już zależy CreateDate, tak:
SELECT CONVERT(varchar,TableName.CreateDate,126) AS CreateDate,
TableName.CreateDate AS CreateDate2
FROM TableName ...
Następnie w kodzie, ci” będziesz musiał wiązać BF1 do "CreateDate2" zamiast oryginalnego "CreateDate", tak:
BoundField bf1 = new BoundField();
bf1.DataField = "CreateDate2";
bf1.DataFormatString = "{0:dd/MM/yyyy}";
bf1.HtmlEncode = false;
bf1.HeaderText = "Sample Header 2";
dv.Fields.Add(bf1);
Voila! Twoja data powinna teraz wyświetlać "29/04/2013"!
Niestety, sugestie były nie działa. Więc zmieniłem BoundField na TemplateField i stworzyłem dynamiczny TemplateField. – iceheaven31
Wiem, że jest stary, ale mam przeczucie, że 'CreateDate' został zdefiniowany jako ciąg, a nie jako" DateTime ". Czy potrafisz zweryfikować? –
Zajrzyj tutaj https://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.boundfield.dataformatstring(vsv.110).aspx –