如何从c#更改GridView中列的格式

时间:2012-05-21 07:54:57

标签: c# datetime gridview format

我有一个GridView,我想将它导出到Word。我想将一列的格式更改为datetime格式(“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#改变格式,怎么做?

6 个答案:

答案 0 :(得分:3)

如果要从CodeBehind更改GridView列的格式 在网格视图中添加RowDataBound

然后在GridView_RowDataBound(object sender, GridViewRowEventArgs e)方法中,您将能够访问e,这将使您可以访问该行的各个单元格,您可以在其中指定格式化程序。

以下是使用RowDataBound事件的示例 http://forums.asp.net/p/1589807/4025153.aspx

答案 1 :(得分:1)

String.Format("{0:dd.MM.yyyy}", myDateTimeInstance);

答案 2 :(得分:0)

我认为列的格式基于系统当前日期时间格式。

但转换为字符串时,您可以这样做

String str = dt[RowNumber][ColumnName].ToString("dd.MM.yyyy");

答案 3 :(得分:0)

DateTime dt = DateTime.Now;
String formated = dt.ToString("dd.MM.yyyy");

OR

String formated = String.Format("{0:dd.MM.yyyy}", dt );

答案 4 :(得分:0)

DateTime dt = DateTime.Now;
string formated = dt.ToString("dd.MM.yyyy");

可能的格式显示在this MSDN article

答案 5 :(得分:0)

如果您想格式化整个列,那么最好是为相关列设置属性

gridview1.Columns[columnIndex].DataFormatString ="{0:dd.MM.yyyy}";

我认为您需要将列强制转换为BoundField才能访问该属性。