Спасибо Гор за то, что помогли мне пройти через это.Сам по себе его ответ не был полным решением, но после некоторого комментирования назад и вперед я нашел хорошее решение.
Вместо использования asp:boundcolumn
в сетке, мне пришлось использовать asp:templatecolumn
и отобразить его с помощью связывающего выражения (например, gor , объясненного в его комментарии, хотя я думаю, что он основывает свой ответ на использовании элемента управления asp:listview
, в то время как я использую старый элемент управления asp:datagrid
).
В коллекции <columns>
элемента управления asp:datagrid
:
<asp:TemplateColumn headertext="Last logged on" >
<ItemTemplate><%#DateStringFromInt(Eval("access_date"))%></ItemTemplate>
</asp:TemplateColumn>
В коде позади:
protected string DateStringFromInt(object value)
{
DateTime date;
if (DateTime.TryParseExact(value.ToString(), "yyyyMMdd",
CultureInfo.InvariantCulture, DateTimeStyles.AssumeLocal,
out date))
{
return date.ToString("dd/MM/yyyy");
}
return value.ToString(); //Return original if not expected format
}