C# 按自定义格式的DateTime列对数据表进行排序

C# 按自定义格式的DateTime列对数据表进行排序,c#,visual-studio,C#,Visual Studio,我有一个包含两列的数据表:第一列是城市名称,第二列是日期,我必须按日期升序排序 日期的格式是MM/dd/yyyy,我使用 DataTable.DefaultView.Sort=“日期asc” 但我不得不将格式更改为dd/MM/yyyy,它停止了工作 要使用此自定义格式对表进行排序,我必须做什么 这是输入 普洛耶斯蒂2017年5月19日 Ploiesti 20/05/2017 Ploiesti 21/05/2017 西奈亚2017年5月21日 西奈亚2017年5月22日 Sinaia 2017年

我有一个包含两列的数据表:第一列是城市名称,第二列是日期,我必须按日期升序排序

日期的格式是
MM/dd/yyyy
,我使用
DataTable.DefaultView.Sort=“日期asc”

但我不得不将格式更改为
dd/MM/yyyy
,它停止了工作

要使用此自定义格式对表进行排序,我必须做什么

这是输入

普洛耶斯蒂2017年5月19日
Ploiesti 20/05/2017
Ploiesti 21/05/2017
西奈亚2017年5月21日
西奈亚2017年5月22日
Sinaia 2017年5月23日
康斯坦塔2017年6月12日
康斯坦塔2017年6月13日
康斯坦塔2017年6月14日
康斯坦塔2017年6月15日
2017年6月20日前
巴尔萨纳2017年6月11日
巴尔萨纳2017年7月11日
博尔萨2017年5月22日
博尔萨2017年6月22日
博尔萨2017年7月22日
布拉索夫2017年5月30日
布拉索夫2017年6月30日

这是使用DataTable.DefaultView.Sort后的输出:


巴尔萨纳2017年6月11日
巴尔萨纳2017年7月11日
康斯坦塔2017年6月12日
康斯坦塔2017年6月13日
康斯坦塔2017年6月14日
康斯坦塔2017年6月15日
普洛耶斯蒂2017年5月19日
Ploiesti 20/05/2017
2017年6月20日前
Ploiesti 21/05/2017
西奈亚2017年5月21日
西奈亚2017年5月22日
博尔萨2017年5月22日
博尔萨2017年6月22日
博尔萨2017年7月22日
Sinaia 2017年5月23日
布拉索夫2017年5月30日
布拉索夫2017年6月30日

以下是我如何实现日期格式的

$('#CategoryTable').DataTable({
                    serverSide: true,
                    processing: true,
                    paging: true,
                    ajax: {
                        url: 'Category/GetData',
                        type: "POST",
                    },
                    order: [[ 0, 'desc' ]],
                    orderId:"CategoryId",
                    columns: [
                        { data: "CategoryId", visible: false },
                        { data: "CategoryName", title: "Category Name" },
                        { data: "CategoryDescription", title: "Category Description" },
                        { data: "CreatedDate", title: "Created Date", render: function (data) {
                               return data.format("DD/MM/YYYY hh:mm A");
                            }
                        },
                        {
                            data: "CategoryId", title: "Action", render: function (data) {
                                return '<a class="btn btn-sm u-btn-secondary" href="/Category/Edit/'+data+'">Edit</a>'
                            },
                            orderable:false
                        }
                    ]
                });
$('#CategoryTable')。数据表({
服务器端:是的,
处理:对,
是的,
阿贾克斯:{
url:'Category/GetData',
类型:“POST”,
},
订单:[[0,'说明']],
orderId:“CategoryId”,
栏目:[
{数据:“CategoryId”,可见:false},
{数据:“类别名称”,标题:“类别名称”},
{数据:“分类说明”,标题:“分类说明”},
{数据:“CreatedDate”,标题:“CreatedDate”,呈现:函数(数据){
返回数据格式(“DD/MM/YYYY hh:MM A”);
}
},
{
数据:“类别ID”,标题:“操作”,呈现:函数(数据){
返回“”
},
可订购:false
}
]
});

您可以尝试使用以下代码使用新格式对数据表进行排序

代码:

结果:


思想共享代码示例和您当前遇到的错误?您好,我没有收到任何错误。使用该排序属性,不管是哪一年,它都会按日期对表进行排序。根据给出的信息,您认为我们能提供什么帮助???我上传了输入/输出
 private void button1_Click(object sender, EventArgs e)
        {

            foreach (DataRow dr in table.Rows)
            {
                dr["Date"] = DateTime.ParseExact(dr["Date"].ToString(), "dd/MM/yyyy", CultureInfo.InvariantCulture).ToShortDateString();
            }
            table.DefaultView.Sort = "Date asc";
            dataGridView1.DataSource = table;

        }

        private void Form1_Load(object sender, EventArgs e)
        {

            table.Columns.Add("Name");
            table.Columns.Add("Date");
            table.Rows.Add("Ploiesti", "19/05/2017");
            table.Rows.Add("Ploiesti", "20/05/2017");
            table.Rows.Add("Ploiesti", "21/05/2017");
            table.Rows.Add("Sinaia", "22/05/2017");
            table.Rows.Add("Sinaia", "19/05/2017");
            table.Rows.Add("Constanta", "23/05/2017");
            table.Rows.Add("Constanta", "12/06/2017");
            table.Rows.Add("Barsana", "13/06/2017");
            table.Rows.Add("Brasov", "11/07/2017");
            table.Rows.Add("Brasov", "22/07/2017");
            dataGridView1.DataSource = table;
        }