4

日付を含む列があり、列ヘッダーをクリックすると、列は日付ではなく数値でソートされます。これを日付順に並べ替えるにはどうすればよいですか?日付の形式は dd/mm/yy です。

例 (最も古いものから順にソート):

10/12/08 <--12 月 10/09/08 <--9 月 12/12/08 <--12 月

どうもありがとう

4

5 に答える 5

10

ソースはデータテーブルですか? その場合は、問題の列が DateTime 型であることを指定する必要があります。

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

それが役立つことを願っています!

于 2008-12-15T16:57:22.863 に答える
2

データ ソースがストアド プロシージャからのものである場合は、日付をデータセットの 2 つの列として返します。1 つは書式設定 (varchar) で、もう 1 つは日時データ型です。

ストアド プロシージャが列を返すとします: 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 形式で日付を並べ替えていたときにうまくいきました。

于 2010-09-10T15:05:00.290 に答える
1

これを試してみてください、それは私にとってはうまくいきました。

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

colNumを実際の列番号に置き換えます。はdショートデート用です。私は軍の時間も持っているのでHH:mm:ss、時間ブロックを追加する必要がありました.

于 2012-11-17T07:10:41.207 に答える
1

セル形式を使用する必要があります

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

または、列全体でこのようなもの (列の DefaultCellStyle を参照)

于 2010-07-24T11:50:41.547 に答える