繁体   English   中英

如何在DataView中对DateTime列进行排序?

[英]How to sort a DateTime-column in DataView?

我有一些列的gridview,我需要按日期列对gridview进行排序。 但是我无法正确排序。 这是我使用的代码:

dt.DefaultView.Sort = "Meldingsdatum asc";
gvOutlookMeldingen.DataSource = dt;
gvOutlookMeldingen.DataBind();

有人能帮助我吗。

DataView将日期或任何内容存储为字符串类型。 因此,当您对它排序时,它按字符串排序。 要将其排序为DateTime,您需要先将其转换为DateTime,然后再添加以下数据,

您是DateTime类型的列,如果不是,则可能需要。 在填充表格之前,请一开始就执行此操作。 或者,您可以创建第二个类型为DateTime的列并使用它,但这有点混乱:-)

我的代码段希望显示在正确排序之前,需要将该列设置为typeof(DateTime)

        EntityCollection result = serviceProxy.RetrieveMultiple(querybyattribute);

        DataTable dt = new DataTable();
        dt.Columns.Add("Title");
        dt.Columns.Add("Created On", typeof(DateTime));

        foreach (Entity entity in result.Entities)
        {
            DataRow dr = dt.NewRow();

            dr["Title"] = entity.Attributes["title"].ToString();
            dr["Created On"] = entity.Attributes["createdon"];

            dt.Rows.Add(dr);
        }

        DataView dv = dt.DefaultView;
        dv.Sort = "Created On desc";
        DataTable sortedDT = dv.ToTable();

        dataGridView1.DataSource = sortedDT;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM