从数据库中提取数据时如何仅在GridView中显示日期? C#
我从访问数据库中提取数据,以显示在ASP.NET项目的GridView控件中。 它工作正常,但我想看看我是否可以格式化正在拉动的数据。 目前,任何货币都从xx.xx被截断为仅美元金额。 日期显示mm / dd / yyyy hh / mm / ss AM / PM
我尝试将数据库本身编辑为正确的值(我将货币字段设置为“货币”,将日期字段设置为“短日期”,但是当我拉出该日期时,它仍然显示它们没有格式化。
编辑:对不起,不得不把代码删掉
有任何想法吗? 谢谢
在你的网格视图中添加名为DataFormatString
的属性
DataFormatString示例:
{0:dd MMMM yyyy} - 2006年2月24日 {0:MMM dd} - 给出2月24日(用MMMM取代MMM的全月名称 而不是缩写) {0:dd / MM / yy} - 给出24/02/06 {0:dd / MM / yyyy} - 给出24/02/2006
示例代码
MSDN BoundField.DataFormatString属性
您只需要将dataformatstring设置为您希望如何填充它。
如MSDN页面上所示:
钱:
使用{0:c},在c值之后放置一个数字(例如{0:c2})将为您提供许多小数位。
日期:
一个解决方案是:
<%# Eval("Name") %> <%# Convert.ToDateTime(Eval("JoinDate")).ToShortDateString() %> OR <%# Convert.ToDateTime(Eval("JoinDate")).ToString("d") %>
您必须创建一个BoundField,设置其属性,包括属性dataformatstring,您可以使用该属性设置GridView中显示的字段的格式,并将其添加到GridView控件。
这里有一些代码
public GridView Cr_GridView(string[] ColNames,string[] ColLable, string[] ColFormat) { GridView GV = new GridView(); int x = ColNames.GetUpperBound(0); for (int i = 0; i < x; i++) { BoundField GvField = new BoundField(); GvField.DataField = ColNames[i]; GvField.HeaderText = ColLable[i]; GvField.DataFormatString = ColFormat[i];// for example "{0:dd/MM/yyyy}" for a date field GV.Columns.Add(GvField); } return GV; }
- 有条件地禁用ASP.NET MVC控制器
- 获取Web项目引用的类库项目中的相对文件路径
- 从外部配置文件设置的log4net不起作用
- 获取堆栈跟踪中的参数值
- 如何覆盖Resources.Designer.cs中的默认System.Resources.ResourceManager?
- 如何使用System.Threading模拟下载速度
- 在PostBack之后维护网格视图中div的滚动条位置
- 如何在null时使用HttpContext.Current的会话
- 在ASP.Net Identity 2.0上包含属性UserManager.Users.ToListAsync和UserManager.FindByIdAsync