表列标头不对数据进行排序
本文关键字:数据 排序 | 更新日期: 2023-09-27 18:08:20
我是一个相当初级的c#开发人员,所以如果这很容易,请原谅我。我试图排序的数据在ASC
和DESC
的顺序时,击中表列标题,但由于某种原因,它没有这样做。
这是排序代码,供您检查:
if (sorting != null)
{
if (sorting.Equals("TrackID ASC"))
{
daa.OrderBy(p => p.TrackID);
}
else if (sorting.Equals("TrackID DESC"))
{
daa.OrderByDescending(p => p.TrackID);
}
if (sorting.Equals("TrackName ASC"))
{
daa.OrderBy(p => p.TrackName);
}
else if (sorting.Equals("TrackName DESC"))
{
daa.OrderByDescending(p => p.TrackName);
}
else if (sorting.Equals("DateTimes ASC"))
{
daa.OrderBy(p => p.Date);
}
else if (sorting.Equals("DateTimes DESC"))
{
daa.OrderByDescending(p => p.Date);
}
else if (sorting.Equals("ArtistName ASC"))
{
daa.OrderBy(p => p.ArtistName);
}
else if (sorting.Equals("ArtistName DESC"))
{
daa.OrderByDescending(p => p.ArtistName);
}
else if (sorting.Equals("Times ASC"))
{
daa.OrderBy(p => p.Times);
}
else if (sorting.Equals("Times DESC"))
{
daa.OrderByDescending(p => p.Times);
}
}
有人能解释一下为什么它不工作,我如何工作,并实现它在ASC
和DESC
顺序排序的数据?
任何帮助将是伟大的:)谢谢
如果我没记错的话,方法"OrderBy"answers" orderbydescent "不会对直接调用它们的对象进行排序。相反,它们返回IOrderedEnumerable<所以你需要使用IOrderedEnumerable作为引用来排序你的数据集合,或者从IOrderedEnumerable创建你的集合类型并将其传递给data。当然还有刷新ui>
if (sorting != null)
{
if (sorting.Equals("TrackID ASC"))
{
daa = daa.OrderBy(p => p.TrackID).ToList();
}
else if (sorting.Equals("TrackID DESC"))
{
daa = daa.OrderByDescending(p => p.TrackID).ToList();
}
if (sorting.Equals("TrackName ASC"))
{
daa = daa.OrderBy(p => p.TrackName).ToList();
}
else if (sorting.Equals("TrackName DESC"))
{
daa = daa.OrderByDescending(p => p.TrackName).ToList();
}
else if (sorting.Equals("DateTimes ASC"))
{
daa = daa.OrderBy(p => p.Date).ToList();
}
else if (sorting.Equals("DateTimes DESC"))
{
daa = daa.OrderByDescending(p => p.Date).ToList();
}
else if (sorting.Equals("ArtistName ASC"))
{
daa = daa.OrderBy(p => p.ArtistName).ToList();
}
else if (sorting.Equals("ArtistName DESC"))
{
daa = daa.OrderByDescending(p => p.ArtistName).ToList();
}
else if (sorting.Equals("Times ASC"))
{
daa = daa.OrderBy(p => p.Times).ToList();
}
else if (sorting.Equals("Times DESC"))
{
daa = daa.OrderByDescending(p => p.Times).ToList();
}
}