簡體   English   中英

C#按日期對Datagrid列進行排序

[英]C# Sorting Datagrid column by date

我有一個包含日期的列,當我單擊列標題時,該列按數字排序而不是按日期排序。 我將如何按日期排序? 日期的格式為 dd/mm/yy。

示例(先排序最舊):

10/12/08 <--十二月 10/09/08 <--九月 12/12/08 <--十二月

非常感謝

源是數據表嗎? 如果是這樣,您可能需要指定相關列的類型為 DateTime:

myDataTable.Columns["ColumnName"].DataType = System.Type.GetType("System.Date");

希望有幫助!

如果數據源來自存儲過程,則將日期作為數據集中的兩列返回。 一種是格式化的 (varchar),另一種是日期時間數據類型。

假設存儲過程返回列:COLUMN_STRING_FORMAT 和 COLUMN_DATETIME_FORMAT

在網格的標記中,

<asp:BoundColumn DataField="COLUMN_STRING_FORMAT" SortExpression="COLUMN_DATETIME_FORMAT" DataFormatString="{0:dd-MMM-yyyy}" /> <asp:BoundColumn DataField="COLUMN_DATETIME_FORMAT" Visible="false"/>

請注意第一行中的排序表達式。 它指的是 DateTime 數據類型中的列。

當我以 DD-MMM-YYYY 格式對日期進行排序時,這對我有用。

試試這個,它對我有用。

dataGridView1.Columns[colNum].DefaultCellStyle.Format = "d";

用實際的列號替換colNum d是短日期。 我也有軍事時間,所以我不得不為時間塊添加HH:mm:ss

您應該使用單元格格式

dgv.Rows[rowId].Cells["colCreated"].Style.Format = "HH:mm :: dd/MM/yyyy";

或整個列的類似內容(請參閱列的 DefaultCellStyle)

當 datagrid 未綁定到數據源並且 dataGrid 逐行填充時,以下方法對我有用:

//Init 
dataGridView_records.Columns[0].DefaultCellStyle.Format = "dd/MM/yy HH:mm:ss";

然后按如下方式填充數據網格:

DateTime date = DateTime.ParseExact((String)drs["data"], "dd/MM/yy HH:mm:ss", CultureInfo.InvariantCulture);
object[] gdr = new object[1] { date };//add the other columns data here
dataGridView_records.Rows.Add(gdr); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM