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

时间:2014-09-23 14:55:11

标签: c# sorting telerik radgridview

我使用Telerik RadGridView来展示一些我应该能够排序的东西。我用一个图像列创建了一个简短的测试示例。如果用户单击标题单元格,它会自动按升序和降序排序。那就是我认为我需要的东西。我用RadGridView填充了三张图片,并将这些图像命名为#34; a.png"," b.png"和" c.png" (" a.png"是红色的子弹," b.png"是黄色的子弹," c.png"是绿色的子弹)。如果我按升序排序,它应该是:

  • 红色(" 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对图片进行排序?我认为这是图像名称,但你可以看到它不是。或者我添加子弹的方式导致排序行为出现任何问题?

1 个答案:

答案 0 :(得分:0)

要控制排序,请使用Sort Descriptor

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中以设置升序和降序