2013-04-29 44 views
0

我使用girdview顯示搜索結果並在其中實現了排序功能。但它不適用於顯示日期的列。我以不同格式顯示日期.for今天的日期只是顯示時間(10:00 PM或08:45 AM),今年的任何日期顯示爲(APR 22,DEC 15,JAN 30)和其他年份以此格式顯示(dd/mm/yyyy)。以下是代碼爲了這。gridview中的排序日期列

<asp:TemplateField HeaderText="CREATED DATE" SortExpression="CreatedOnDate" ItemStyle-Width="150" ItemStyle-Font-Bold="false" ItemStyle-Font-Size="Larger" HeaderStyle-HorizontalAlign="Left" HeaderStyle-VerticalAlign="Top" ItemStyle-HorizontalAlign="Left" ItemStyle-VerticalAlign="Top" > 
         <HeaderTemplate > 
          <asp:LinkButton ID="LinkButton4" runat="server" Text="CREATED DATE" CommandName="Sort" style="text-decoration:none" CommandArgument="CreatedOnDate" ></asp:LinkButton> 

         </HeaderTemplate> 
         <ItemTemplate> 
          <asp:Label runat="server" Text='<%# Convert.ToDateTime(Eval("CreatedOnDate")).ToString("yyyy")==DateTime.Today.ToString("yyyy")?(Convert.ToDateTime(Eval("CreatedOnDate")).ToString("MMMM dd") == DateTime.Today.ToString("MMMM dd") ? Convert.ToDateTime(Eval("CreatedOnDate")).ToString("hh:mm t.\\M.") : Convert.ToDateTime(Eval("CreatedOnDate")).ToString("MMM dd")):Convert.ToDateTime(Eval("CreatedOnDate")).ToString("dd/MM/yyyy") %>'></asp:Label> 
         </ItemTemplate> 
</asp:TemplateField> 

我在這裏認爲日期被視爲string.Can任何人都可以幫助我對這一列進行排序。這是後面的代碼:我也這麼認爲,因爲你是在爲你Eval使用此代碼

dvSortedView.Sort = e.SortExpression + " " + getSortDirectionString(); 
ViewState["sortExpression"] = e.SortExpression; 
grdSearchResults.DataSource = dvSortedView; 
grdSearchResults.DataBind(); 
+0

您的問題還有更多的答案,請嘗試這個博客:http://stackoverflow.com/questions/138412/how-to-sort-columns-in-an-asp-net-gridview-if-using-a-自定義數據源,http://www.codeproject.com/Questions/448965/How-to-Sort-a-single-Column-in-Asp-net-Gridview – Elyor 2013-04-29 11:07:28

回答

0

Convert.ToDateTime(Eval("CreatedOnDate")) 

你能改變你的模型使CreatedOnDate實際上是一個DateTime ?您仍然可以使用ToString以不同的格式,但可排序的數據將爲DateTime,因此可以正確排序。你的模型能可能是這樣的:

class MyModel 
{ 
    public DateTime CreatedOnDate { get; set; } // DateTime instead of string 
} 

該分類機構自動排序正確根據IComparable執行類型(stringDateTime或其他)的。

+0

感謝您的快速答覆。我會盡力讓你知道 – samiaj 2013-04-29 10:54:30

+0

你可以請編輯我的代碼 – samiaj 2013-04-29 10:56:41

+0

@sami你需要改變你的基礎模型,而不是標記。排序是自動完成的。看到我編輯的答案。 – 2013-04-29 10:57:12