【问题标题】:How to change the format of a column in GridView from c#如何从 C# 更改 GridView 中列的格式
【发布时间】:2012-05-27 17:23:56
【问题描述】:

我有一个 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# 更改格式,怎么做?

【问题讨论】:

    标签: c# datetime gridview format


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:
      String.Format("{0:dd.MM.yyyy}", myDateTimeInstance);
      

      【讨论】:

      • 这很简单。如果它绑定在网格中,他将如何从后面的代码中访问该日期时间。
      • @EoinCampbell:将网格源转换为数据表。并使用dt[0]["columnname"].ToString("dd.MM.yyyy");
      【解决方案3】:

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

      但是当转换成字符串时你可以这样做

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

      【讨论】:

        【解决方案4】:
        DateTime dt = DateTime.Now;
        String formated = dt.ToString("dd.MM.yyyy");
        

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

        【讨论】:

          【解决方案5】:
          DateTime dt = DateTime.Now;
          string formated = dt.ToString("dd.MM.yyyy");
          

          可能的格式显示在this MSDN article

          【讨论】:

            【解决方案6】:

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

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

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

            【讨论】:

            猜你喜欢
            • 2012-05-27
            • 1970-01-01
            • 2020-04-22
            • 1970-01-01
            • 1970-01-01
            • 2021-10-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多