如何对包含日期列的数据表进行排序

本文关键字:数据表 排序 包含 日期 | 更新日期: 2023-09-27 18:33:23

>我有一个包含 1 个日期列的数据表作为

dttable.Columns.Add("StartDate", typeof(DateTime));
dttable.Columns.Add("Col2");
dttable.Columns.Add("Col3");
dttable.Columns.Add("Col4");
dttable.Columns.Add("Col5");

在使用 StartDate 排序后,我将这个表与网格视图绑定,如下所示

dttable.DefaultView.Sort = "StartDate";
GridView1.DataSource = dttable;
GridView1.DataBind();

在网格视图中,我希望字符串格式的日期为"dd-MMM-yyyy"。我该怎么做?

如何对包含日期列的数据表进行排序

您可以使用

DataFormatString

<columns>
  <asp headertext="StartDate" dataformatstring="{0:dd-MMM-yyyy}" 
       datafield="StartDate"  />
</columns>

在aspx文件中,只需对开始日期列使用以下代码

<ItemTemplate>
    <asp:Label ID="StartDate" runat="server" Text='<%# Eval("StartDate","{0:dd-MMM-yyyy}") %>' ></asp:Label>
</ItemTemplate>

也许这会起作用。

string str="";
for(int i=0;i<dttable.Rows.Count;i++)
{
  str = dttable.rows[i]["StartDate"].toString("dd-MM-yyyy");
  dttable.rows[i]["StartDate"] = DateTime.ParseExact(str, "dd-MM-yyyy",null);
}
dttable.DefaultView.Sort = "StartDate";
GridView1.DataSource = dttable;
GridView1.DataBind();