覆盖GridView中一列的自动排序?

时间:2009-09-24 17:03:51

标签: asp.net linq-to-sql gridview sorting

我有一个使用LinqDataSource的GridView,它连接到我的数据库中的表。我的这个表有一个int外键。在我的表示层中,使用Gridview中的TemplateField,我隐藏了外键值并再次调用数据库以显示其相关名称的名称,因此对用户来说更具可读性。

但是,当我单击外键的标题对其列进行排序时,它会按id值排序,而不是它的关联名称的字符串值。我如何根据它的名称而不是它的外键值来对这个Gridview进行排序?

2 个答案:

答案 0 :(得分:0)

将键列的SortExpression设置为数据源中Name列的名称。

答案 1 :(得分:0)

只是添加马修琼斯所说的你必须指定如何访问该字段。 e.g。

class Parent
{
   public int Id { get; set; }
   public string Name { get; set; }
}

class Child
{
   public int Id { get; set; }
   public Parent Mom { get; set; }
   public Parent Dad { get; set; }
}

如果您绑定了一个'Child'表,并且想要对Mom属性进行排序,则SortExpression将为“Mom.Name”