Datagridview日期排序无效 [英] Datagridview date sorting is not working

查看:94
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆