【问题标题】:Override automatic sorting for one column in GridView?覆盖GridView中一列的自动排序?
【发布时间】:2009-09-24 17:03:50
【问题描述】:
我有一个使用 LinqDataSource 的 GridView,它与我的数据库中的一个表相关联。我的这张表有一个 int 外键。在我的表示层中,使用 Gridview 中的 TemplateField,我隐藏了外键值并再次调用数据库以显示其关联名称的名称,以便用户更易读。
但是,当我单击外键的标题对其列进行排序时,它按 id 值排序,而不是按其关联名称的字符串值排序。我怎样才能使这个 Gridview 按它的名称而不是它的外键值排序?
【问题讨论】:
标签:
asp.net
linq-to-sql
gridview
sorting
【解决方案1】:
将键列的SortExpression设置为数据源中Name列的名称。
【解决方案2】:
只是为了补充 Matthew Jones 所说的内容,您必须指定如何访问该字段。例如
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”