2010-11-05 67 views
1

我有一個自動生成列的gridview。其中一列是日期字段。 不知何故,我無法排序日期字段。它被解釋爲一個字符串。排序日期列gridview

數據出來一個數據庫。那裏的數據類型是在datetime上設置的。

這是在ASPX文件中的代碼:

<asp:BoundField DataField="date" HeaderText="date" SortExpression="date" DataFormatString="{0:dd/MM/yyyy}" HtmlEncode="false"/> 

我到底錯在這裏做什麼?

回答

5

我意識到這是一個相對較舊的帖子,但我自己找到了解決方案。

如果Date被填充爲字符串,那麼您需要確保它不是。要做到這一點創建表中的數據爲DataTable和數據使用加時:

dt.Columns.Add("DateTime", System.Type.GetType("System.DateTime"));

這出剛剛排序日期列,你會喜歡它。

+0

嗨,我正在開發的項目不再被開發。但由於您的解釋聽起來像是我遇到的問題的解決方案,因此我會將您的帖子標記爲已回答。謝謝! – Yustme 2011-12-30 10:28:54

0

當你格式化一個值(不管它是什麼數據類型)時,結果是一個String。對結果的任何操作(例如排序)都可以使用String。

您應該直接對數據庫端的Gridview數據源進行排序。

+0

它不是我如何排序網格。它的用戶。有時它需要被髮送,有時需要下降。在Google搜索這個問題之後,我添加了Formatter。它並不在代碼中。值得一試。 – Yustme 2010-11-05 10:29:57

+0

您可以將CurrentSortDirection保存在ViewState中,檢查新的sortexpression是否與舊的相同,然後切換方向。 – 2010-11-05 10:39:02

+0

爲什麼在從數據庫加載數據之後不能對DataTable進行排序? http://stackoverflow.com/questions/857115/how-to-sort-a-datagridview-column – JeffO 2010-11-05 13:48:57