如何在 DataView 中对日期时间列进行排序?

发布于 2024-10-24 20:52:54 字数 209 浏览 2 评论 0原文

我有一个包含一些列的网格视图,我需要按日期列对网格视图进行排序。但我无法正确排序。这是我使用的代码:

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

请有人帮助我。

I have a gridview with some columns and I need to sort the gridview by a date-column. But I fail in sorting it correctly. This is the code that I use:

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

Can someone help me, please.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

倾城泪 2024-10-31 20:52:54

DataView 将日期或任何内容存储为字符串类型。因此,当您对它进行排序时,它是按字符串排序的。要将其排序为 DateTime ,您需要在添加任何数据之前将其转换为 DateTime,如下所示:

dt.Columns["Date"].DataType = Type.GetType("System.DateTime");

DataView stores date or anything as string type. Thus when you sort it sort by string. To sort it as DateTime , you need to convert it to DateTime before adding any data as follows,

dt.Columns["Date"].DataType = Type.GetType("System.DateTime");

俯瞰星空 2024-10-31 20:52:54

我的代码片段希望显示需要将列设置为 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;

My code snippet hopefully shows the need to set the column as typeof(DateTime) before you can sort it properly

        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;
初熏 2024-10-31 20:52:54

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

Is you column of type DateTime, if not then it probably needs to be. Do this right at the start before you populate the table. Alternatively you could create a second column of type DateTime and use that but it's a little messy :-)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文