2011-12-13 9 views
1

私は私のプログラムでdatagriviewを持って、私が使用して、データでの列を注文したい:DateTimeの値を持ちますが、文字列として表示されているDataGridView列を並べ替える方法はありますか?

dataGridView1.Columns["Date"].ValueType = typeof(DateTime); 

しかし、私は、日付欄をクリックしたとき、それは正しく並べ替えませんでしたです。

私の日付形式は次のとおりです。23-12-1997

は、日付の間違った書き込み形式のですか?

+0

バインディングコードを投稿することができます..datagridviewに列を注文する機能があります。 – BizApps

+1

どのように並べ替えましたか? Numericall、アルファベット順ですか? –

+0

実際の値として何を保存しましたか?彼らは実際にDateTimeですか?麻生:このデータ結合ですか?または明示的な値ですか? –

答えて

3

あなたのセルの書式は次のようになります。ValueTypeには、DateTimeのであれば

dataGridView1.Columns["Date"].DefaultCellStyle.Format = "dd-MM-yyyy"; 

一般的に、このフォーマットは、この列のソートには影響しません。私はあなたがDateTime値ではなく、この列にString値を入れたと思う。

例:

  DataTable t = new DataTable(); 
      DataColumn c1 = new DataColumn("Name", typeof(String)); 
      DataColumn c2 = new DataColumn("Date", typeof(DateTime)); 
      t.Columns.Add(c1); 
      t.Columns.Add(c2); 
      for (int i = 0; i < 10; i++) 
      { 
       t.Rows.Add(new object[] {i.ToString(), DateTime.Now.AddHours(i * 2) }); 
      } 
      dataGridView1.DataSource = t; 
      dataGridView1.Columns[1].DefaultCellStyle.Format = "HH MM/dd/yyyy"; 
+0

は正しく動作しませんでした。私はこの問題に夢中になります。 – devilkkw

+0

データグリッドビューにデータを置くことに関するコードを記入してください。 – Thinhbk

+0

'ds = xmlDatadoc.DataSet; dataGridView1.DataSource = ds.DefaultViewManager; dataGridView1.DataMember = "Comp"; dataGridView1.Columns ["Data"]。ValueType = typeof(DateTime);dataGridView1.Columns ["Data"]。DefaultCellStyle.Format = "dd-MM-yyyy"; ' – devilkkw

1

私は見ているの多くを行なったし、その後、本当に簡単なものを使用。私は、非表示の列を追加し、次の形式で文字列の日付を入れます: File.GetLastWriteTime(fl).ToString( "yyyyMMddhhmm")と非表示の列を並べ替えました。 ファイル時間を使用している間に、日付/時刻が機能しない理由はありません。

0

日付の列のDataGridViewソートの問題を調査して、この質問に遭遇しました。私のケースはOPよりやや複雑だったので、私はここで誰かを助けることを期待して投稿しています。

私の場合、DataGridViewのDataSourceはBindingSourceオブジェクトに設定されています。私のBindingSourceのDataSourceはDataSetオブジェクトです。 DataSetデザイナのプロパティを変更してコードを追加せずに並べ替えの問題を修正できました。私はVisual Studioデザイナーに行き、自分のデータセットを選択しました。プロパティウィンドウで、 "Edit in DataSet Designer"を選択しました。次に、DataSetデザイナで、Columnを選択し、DataTypeプロパティをSystem.DateTimeに変更しました(以前はStringに設定されていました)。問題が解決しました。

関連する問題