【问题标题】:How to format the Gridview column which has DateTime value at runTime如何格式化在运行时具有 DateTime 值的 Gridview 列
【发布时间】:2013-10-04 13:39:58
【问题描述】:

我正在使用此代码将数据绑定到数据网格。我在运行时创建一个 Datagrid,不想在设计时创建 Gridview。而且我不能使用RowDataBound 事件。有什么方法可以格式化列,以便我只得到日期而不是时间。

OleDbDataAdapter da = new OleDbDataAdapter(cmd);
da.Fill(dt);
GridView GridView1 = new GridView();
GridView1.DataSource = dt;
GridView1.DataBind();

Gridview 中有一列名为MyDate,它将数据显示为12/12/2010 with Time。我想删除时间。

我想使用 DataFormatString="{0:d/M/yyyy}" 之类的东西。

【问题讨论】:

  • MyDate 的类型是什么
  • MyDate 的类型是日期/时间 [数据源是 MSAccess]
  • dipesh 试试下面的代码,我发布它会解决你的问题
  • 对不起,但这并不能解决问题:(

标签: c# gridview c#-3.0 c#-2.0


【解决方案1】:

您可以将Mydate 的数据类型更改为日期而不是datetime,或者使用Split() 拆分日期和时间。将日期存储在一个字符串中,将时间存储在另一个字符串中,然后您可以将网格与包含日期的字符串绑定。

【讨论】:

  • 因为 Gridview 的数据源是 MSAccess,我已将它们指定为 DateTime,所以我想我无法更改它。另外,我如何拆分 Column 的值-您能建议
【解决方案2】:

使用此代码:

  OleDbDataAdapter da = new OleDbDataAdapter(cmd);
    da.Fill(dt);
    GridView GridView1 = new GridView();
    DataRow dr= dt.NewRow();
    dr["MyDate"]=DateTime.Now.Date;
    GridView1.DataSource = dt;
    GridView1.DataBind();

【讨论】:

  • 如果使用上面的代码,我得到的列数据是“9/30/2013 12:00:00 AM”
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-01
  • 1970-01-01
  • 2014-03-08
  • 1970-01-01
相关资源
最近更新 更多