我使用ASP.NET和C#。這是我的代碼。如何在gridview中對日期列進行排序?
private const string ASCENDING = "ASC";
private const string DESCENDING = "DESC";
public SortDirection GridViewSortDirection
{
get
{
if (ViewState["sortDirection"] == null)
ViewState["sortDirection"] = SortDirection.Ascending;
return (SortDirection) ViewState["sortDirection"];
}
set { ViewState["sortDirection"] = value; }
}
public string SortExpression
{
get
{
if (ViewState["sortExpression"] == null)
ViewState["sortExpression"] = "JobNumber";
return ViewState["sortExpression"] as string;
}
set { ViewState["sortExpression"] = value; }
}
protected void OnSorting(object sender, GridViewSortEventArgs e)
{
SortExpression = e.SortExpression;
if (GridViewSortDirection == SortDirection.Ascending)
{
GridViewSortDirection = SortDirection.Descending;
}
else
{
GridViewSortDirection = SortDirection.Ascending;
}
BindGrid();
}
我正在對所有列進行排序並正常工作。但是與日期欄一樣,按照這個順序(dd/mm/yyyy)。
- 30/11/2012
- 2012年10月12日
2012年9月10日
<asp:BoundField DataField="ReportedDate" HeaderText="Reported Date" SortExpression="ReportedDate" DataFormatString="{0:DD/MM/YYYY}" HtmlEncode="false" />
此列的數據類型是日期。
如何做到這一點?我做錯了嗎?
在您的代碼「30/11/2012」中,其他日期被視爲字符串,只有字符串排序正在發生。 – sajanyamaha
謝謝..我知道,但我不知道爲什麼字符串排序正在發生。我宣佈這隻作爲日期類型..你可以給我任何提示? – Giri