私は girdview を使用して検索結果を表示し、その中にソート機能を実装しています。しかし、日付を表示する列では機能しません。日付を別の形式で表示しています。今日の日付は、(10:00 PM または 08: 45 AM)、現在の日付は (APR 22、DEC 15、JAN 30) のように表示され、他の年はこの形式 (dd/mm/yyyy) で表示されます。以下は、このためのコードです。
<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>
ここで日付は文字列として扱われていると思います.誰かがこの列をソートするのを手伝ってくれますか. これは背後にあるコードです:
dvSortedView.Sort = e.SortExpression + " " + getSortDirectionString();
ViewState["sortExpression"] = e.SortExpression;
grdSearchResults.DataSource = dvSortedView;
grdSearchResults.DataBind();