C#RadGridView排序顺序在ImageColumn上升序-图像排序行为

本文关键字:排序 图像 升序 顺序 ImageColumn C#RadGridView | 更新日期: 2023-09-27 18:24:01

我使用Telerik RadGridView来展示一些我应该能够排序的东西。我创建了一个带有一个图像列的简短测试示例。如果用户单击标题单元格,它会自动进行升序和降序排序。这就是我想我需要的。我在RadGridView中填充了三个图像,并将这些图像命名为"a.png"、"b.png"answers"c.png"("a.pnng"是红色项目符号,"b.pnng"为黄色项目符号,而"c.pnng"则是绿色项目符号)。如果我升序排序,它应该像:

  • 红色("a.png")
  • 黄色("b.png")
  • 绿色("c.png")

但它是以下内容:

  • 红色("a.png")
  • 绿色("c.png")
  • 黄色("b.png")

这对我来说毫无意义。你可以在这里看到我添加项目符号的代码:

foreach (string item in list)
{
    if (item.Length < 5)
    {
        bullet = Properties.Resources.a; // red
    }
    else if (item.Length > 5)
    {
        bullet = Properties.Resources.b; // yellow
    }
    else if (item.Length == 5)
    {
        bullet = Properties.Resources.c; // green
    }
    radGridView1.Rows.Add(bullet);
}
radGridView1.Columns["imgCol"].SortOrder = RadSortOrder.Ascending;

所以我的问题是:

根据RadGridView对图像进行排序是什么?我以为这是图像名称,但正如你所看到的,它不是。还是我添加子弹的方式会导致排序行为出现问题?

C#RadGridView排序顺序在ImageColumn上升序-图像排序行为

为了控制排序,请使用排序描述符

this.radGridView1.MasterTemplate.EnableSorting = true;
SortDescriptor descriptor = new SortDescriptor();
descriptor.PropertyName = "bullet column name";
descriptor.Direction = ListSortDirection.Ascending;
this.radGridView1.MasterTemplate.SortDescriptors.Add(descriptor);

将其放在Sort Command中,以设置升序和降序