Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 格式Gridview单元格的日期格式_C#_Asp.net_Date_Gridview_Formatting - Fatal编程技术网

C# 格式Gridview单元格的日期格式

C# 格式Gridview单元格的日期格式,c#,asp.net,date,gridview,formatting,C#,Asp.net,Date,Gridview,Formatting,我对gridview单元格中从(dd/MM/yyyy H:ss:MM)到(yyy-MM-dd)的日期格式的格式感到困惑 然而,我并没有在.aspx页面中创建任何列,而是使用来自SQL的动态绑定将结果绑定到Gridview数据源。所以,添加类似于吼叫的代码是行不通的 <ItemTemplate> <%#Convert.ToDateTime(Eval("StartDate")).ToString("yyyy-MM-dd") %> </ItemTemplate&g

我对gridview单元格中从(dd/MM/yyyy H:ss:MM)到(yyy-MM-dd)的日期格式的格式感到困惑

然而,我并没有在.aspx页面中创建任何列,而是使用来自SQL的动态绑定将结果绑定到Gridview数据源。所以,添加类似于吼叫的代码是行不通的

<ItemTemplate>
    <%#Convert.ToDateTime(Eval("StartDate")).ToString("yyyy-MM-dd") %>
</ItemTemplate>


那么,有什么方法可以更改日期值的格式吗?

您可以在RowDataBound事件中进行更改

protected void gvrequests_RowDataBound(Object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
          string strTemp= e.Row.Cells[3].Text;

        e.Row.Cells[3].Text=Convert.ToDateTime(strTemp).ToString("yyyy-MM-dd h:mm tt")
        }
   }

将绑定代码替换为:

<ItemTemplate>
    <%# Eval("StartDate", "{0:yyyy-MM-dd}") %>
</ItemTemplate>

不,我的aspx页面中甚至没有类似“xxxxxx”的代码。所有项目/列都是通过MSSQL动态生成的。在SQL中,value已经是日期类型了。我认为这应该是GridView格式问题。@Edmund如果是日期类型,请删除Convert.ToDateTime。您读取的值已经是日期时间
Eval(“StartDate”).ToString(“yyyy-MM-dd”)
在查询中是足够的,它已经是一个日期类型值。一旦Gridview.databind(),日期将显示为“dd/MM/yyyy H:ss:MM”。@Edmund数据库中的字段类型是什么?如果是任何与日期相关的类型,则不需要转换。日期没有格式,它们是二进制类型。查询将以
DateTime
的形式返回它们,因此一个简单的
.ToString(“yyyy-MM-dd”)
就足够了。@Edmund如果是文本,您有一个严重的错误-您应该使用正确的类型来存储日期。无论您如何确定字符串始终看起来像
dd/MM/yyyy
,总会有人以不同的格式输入文本。甚至可能是你。一旦发生这种情况,您将无法找到不正确的值-2018年5月4日
的意思是什么?@karthikeyanagaraj SQL中的字符串格式是一个非常糟糕的主意。双重转换更糟糕。如果字段是
日期
日期时间
,则无需转换为文本,日期值将被检索为日期时间值,以备显示和格式化。感谢未解释的向下投票。幸好有一个机器人可以清除连续的否决票
<a href='<%# Eval("ProductID", "details.asp?id={0}") %>'>See Details</a>