2011-03-21 73 views
2

我有一些列的gridview,我需要按日期列排序gridview。但是我沒有正確地分類。這是我使用的代碼:如何對DataView中的DateTime列進行排序?

dt.DefaultView.Sort = "Meldingsdatum asc"; 
gvOutlookMeldingen.DataSource = dt; 
gvOutlookMeldingen.DataBind(); 

有人可以幫助我,請。

回答

3
+1

不是一個真正的答案,但它的鏈接。發佈答案,以便我可以接受 – SamekaTV 2011-03-21 08:48:06

+0

作爲openshac的建議,答案是:「檢查DataColumn的DataType屬性並確保它設置爲DateTime。」 – DOK 2013-05-23 14:32:09

1

是你DateTime類型的列,如果沒有的話,它可能必須這樣做。在填充表格之前,在開始時正確完成此操作。或者,您可以創建類型爲DateTime的第二列,然後使用該列,但這有點凌亂:-)

+0

我必須首先將該列的數據類型設置爲DateTime。然後我可以對它進行分類 – SamekaTV 2011-03-21 09:39:44

2

DataView將日期或任何內容存儲爲字符串類型。因此,當你按字符串排序時。要將其排序爲DateTime,您需要在添加任何數據之前將其轉換爲DateTime,如下所示:

dt.Columns [「Date」] .DataType = Type.GetType(「System.DateTime」);

0

我的代碼片段希望顯示的需要來設置列的typeof(DateTime的),才能正確地排序它

 EntityCollection result = serviceProxy.RetrieveMultiple(querybyattribute); 

     DataTable dt = new DataTable(); 
     dt.Columns.Add("Title"); 
     dt.Columns.Add("Created On", typeof(DateTime)); 

     foreach (Entity entity in result.Entities) 
     { 
      DataRow dr = dt.NewRow(); 

      dr["Title"] = entity.Attributes["title"].ToString(); 
      dr["Created On"] = entity.Attributes["createdon"]; 

      dt.Rows.Add(dr); 
     } 

     DataView dv = dt.DefaultView; 
     dv.Sort = "Created On desc"; 
     DataTable sortedDT = dv.ToTable(); 

     dataGridView1.DataSource = sortedDT; 
相關問題