如何从 c# 更改 GridView 中列的格式
本文关键字:格式 GridView 更改 | 更新日期: 2023-09-27 18:34:42
我有一个GridView,我想将其导出到Word。我想将一列的格式更改为日期时间格式("dd.MM.yyyy"(
var grid = new GridView { DataSource = dt};
grid.DataBind();
在 *.aspx 页面中,这非常简单,如下所示:
<asp:boundfield datafield="My_Date_Column"
dataformatstring="{0:dd.MM.yyyy}"
htmlencode="false" />
我想从 c# 更改格式,如何做到这一点?
如果要从 CodeBehind 更改 GridView 列的格式向网格视图添加RowDataBound
。
然后在GridView_RowDataBound(object sender, GridViewRowEventArgs e)
方法中,您将能够访问e
这将为您提供对该行的各个单元格的访问权限,您可以在其中指定格式化程序。
下面是使用 RowDataBound
事件的示例http://forums.asp.net/p/1589807/4025153.aspx
String.Format("{0:dd.MM.yyyy}", myDateTimeInstance);
我认为列的格式基于系统当前日期时间格式。
但是当转换为字符串时,您可以这样做
String str = dt[RowNumber][ColumnName].ToString("dd.MM.yyyy");
DateTime dt = DateTime.Now;
String formated = dt.ToString("dd.MM.yyyy");
或
String formated = String.Format("{0:dd.MM.yyyy}", dt );
DateTime dt = DateTime.Now;
string formated = dt.ToString("dd.MM.yyyy");
此 MSDN 文章中显示了可能的格式。
如果要格式化整个列,那么最好可以为相关列设置属性
gridview1.Columns[columnIndex].DataFormatString ="{0:dd.MM.yyyy}";
我认为您需要将该列转换为BoundField
才能访问该属性。