我有一个GridView使用绑定到我的数据库中的表的LinqDataSource。我的这张表有一个int外键。在我的表示层中,在Gridview中使用TemplateField,我隐藏了外键值,并对数据库进行了另一次调用,以显示其关联名称的名称,以便用户更易读。覆盖GridView中一列的自动排序?
但是,当我点击外键的标题来对其列进行排序时,它按id值排序,而不是它的相关名称的字符串值。我怎样才能使这个GridView按其名称排序,而不是通过它的外键值进行排序?
我有一个GridView使用绑定到我的数据库中的表的LinqDataSource。我的这张表有一个int外键。在我的表示层中,在Gridview中使用TemplateField,我隐藏了外键值,并对数据库进行了另一次调用,以显示其关联名称的名称,以便用户更易读。覆盖GridView中一列的自动排序?
但是,当我点击外键的标题来对其列进行排序时,它按id值排序,而不是它的相关名称的字符串值。我怎样才能使这个GridView按其名称排序,而不是通过它的外键值进行排序?
将键列的SortExpression设置为数据源中名称列的名称。
只是为了增加马修·琼斯说的你必须指定如何访问该字段。例如
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; }
}
如果你结合“儿童”的一个表,你想排序的妈妈财产的SortExpression将是“Mom.Name”