1

我有一个 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# 更改格式,如何做到这一点?

4

6 回答 6

3

如果您想从 CodeBehind 更改 GridView 列的格式,请将 a 添加RowDataBound到您的网格视图中。

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

下面是一个使用RowDataBound事件 的例子http://forums.asp.net/p/1589807/4025153.aspx

于 2012-05-21T08:01:59.163 回答
1
String.Format("{0:dd.MM.yyyy}", myDateTimeInstance);
于 2012-05-21T07:57:02.207 回答
0

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

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

String str = dt[RowNumber][ColumnName].ToString("dd.MM.yyyy");
于 2012-05-21T07:57:11.797 回答
0
DateTime dt = DateTime.Now;
String formated = dt.ToString("dd.MM.yyyy");

或者

String formated = String.Format("{0:dd.MM.yyyy}", dt );
于 2012-05-21T07:57:33.370 回答
0
DateTime dt = DateTime.Now;
string formated = dt.ToString("dd.MM.yyyy");

此 MSDN 文章中显示了可能的格式。

于 2012-05-21T07:58:52.900 回答
0

如果您想格式化整个列,那么如果您可以为相关列设置属性会更好

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

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

于 2012-05-21T08:34:47.463 回答