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

时间:2016-02-04 12:47:41

标签: c# .net asp.net-mvc

我有一个数据表,其中包含1个日期列

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

在使用StartDate排序后,我将此表与gridview绑定,如下所示

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

在gridview中,我希望字符串格式的日期为" dd-MMM-yyyy"。我怎么能这样做?

3 个答案:

答案 0 :(得分:1)

您可以使用DataFormatString

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

答案 1 :(得分:1)

在aspx文件中,只需使用以下代码作为startdate列

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

答案 2 :(得分:0)

可能会有效。

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();