Datagridview日期排序无效 [英] Datagridview date sorting is not working
本文介绍了Datagridview日期排序无效的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个带有一个日期列的datagirdiew。当我按日期列升序排序时,日期格式如下:
Hi,
I am having a datagirdiew with one date column. in which when i sort the date column to ascending order, the date format is becoming like below:
27/01/2015
27/01/2016
27/01/2016
27/01/2017
27/01/2018
27/01/2018
27/01/2018
27/02/2018
27/02/2018
27/03/2016
27/04/2015
27/04/2016
查看最近3个日期,这里是按日期和月份排序,而不是年份。
i想要它
see last 3 dates, here it was sorting with date and month but not year.
i want it as
27/01/2015
27/04/2015
27/01/2016
27/01/2016
27/03/2016
27/04/2016
27/01/2017
27/01/2018
27/01/2018
27/01/2018
27/02/2018
27/02/2018
我尝试过:
What I have tried:
if (Rb_Date.Checked == true)
{
dgv_summary.Columns["Date"].ValueType = typeof(DateTime);
this.dgv_summary.Sort(this.dgv_summary.Columns["Date"], ListSortDirection.Ascending);
}
任何人都可以建议使用DATE / MONTH / YEAR对datagridview列日期进行排序的代码。 />
先谢谢。
Can any one suggest a code to sort the datagridview column date with DATE/MONTH/YEAR..
Thanks in Advance.
推荐答案
试试这样
try like this
private void Form1_Load(object sender, EventArgs e)
{
DataTable dt = new DataTable();
dt.Columns.Add("Date" );
dt.Columns.Add("DateObjectHide",typeof(DateTime));
dt.Rows.Add("27/01/2015");
dt.Rows.Add("27/01/2016");
dt.Rows.Add("27/01/2016");
dt.Rows.Add("27/01/2017");
dt.Rows.Add("27/01/2018");
dt.Rows.Add("27/01/2018");
dt.Rows.Add("27/01/2018");
dt.Rows.Add("27/02/2018");
dt.Rows.Add("27/02/2018");
dt.Rows.Add("27/03/2016");
dt.Rows.Add("27/04/2015");
dt.Rows.Add("27/04/2016");
dataGridView1.DataSource = dt;
dt.AsEnumerable().ToList().ForEach(k => k["DateObjectHide"] = DateTime.ParseExact(k["Date"].ToString(), "dd/MM/yyyy", CultureInfo.CurrentCulture));
dataGridView1.Columns["DateObjectHide"].Visible = false;
}
bool flag = false;
private void buttonSort_Click(object sender, EventArgs e)
{
if(flag)
this.dataGridView1.Sort(this.dataGridView1.Columns["DateObjectHide"], ListSortDirection.Ascending);
else
this.dataGridView1.Sort(this.dataGridView1.Columns["DateObjectHide"], ListSortDirection.Descending);
flag = !flag;
}
dgv_summary.Columns["Date"].DefaultCellStyle.Format = "dd/MM/yyyy";
在排序代码行之前尝试使用此代码块。
Try this code block before your sorting line of code.
这篇关于Datagridview日期排序无效的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文