Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ASP.NET动态数据显示列属性导致排序问题_Asp.net_Dynamic Data_Asp.net Dynamic Data - Fatal编程技术网

ASP.NET动态数据显示列属性导致排序问题

ASP.NET动态数据显示列属性导致排序问题,asp.net,dynamic-data,asp.net-dynamic-data,Asp.net,Dynamic Data,Asp.net Dynamic Data,使用来自Northwind数据库的具有LINQ to SQL DataContext的ASP.NET动态数据 当我将DisplayColumn属性添加到我的LINQ to SQL实体类之一,并在分部类中引用自定义代码中的属性时,我将无法在生成的GridView中按该列排序。即使我将非自定义属性引用为sortColumn,我仍然无法进行排序 为什么会这样 示例代码: [DisplayColumn("LastNameFirstName", "LastName", false)] public par

使用来自Northwind数据库的具有LINQ to SQL DataContext的ASP.NET动态数据

当我将DisplayColumn属性添加到我的LINQ to SQL
实体
类之一,并在分部类中引用自定义代码中的属性时,我将无法在生成的GridView中按该列排序。即使我将非自定义属性引用为
sortColumn
,我仍然无法进行排序

为什么会这样

示例代码:

[DisplayColumn("LastNameFirstName", "LastName", false)]
public partial class Employee
{
    public string LastNameFirstName
    {
        get { return LastName + ", " + FirstName; }
    }
}
亚伦


编辑:
sortColumn
指定当此实体用作外键(在DropDownList中)时,而不是在GridView中排序时,用于对其进行排序的列。

这是正确的,因为属性不在DB中,linq to SQL将尝试向DB构造一个T-SQL查询以获取实体。但是将失败,因为没有具有该名称的列。

您可以尝试重写可能有效的ToString()方法,但它只会对FK关系引用的实体进行筛选。

尝试添加[ScaffoldColumn(true)]-这可能会欺骗动态数据以启用排序

[DisplayColumn("LastNameFirstName", "LastName", false)]
public partial class Employee
{
    [ScaffoldColumn(true)]
    public string LastNameFirstName
    {
        get { return LastName + ", " + FirstName; }
    }
}

这可能是故意的


“sortColumn”指定当该实体用作外键(在DropDownList中)时,而不是在GridView中排序时,用于对其进行排序的列。

但第二个参数“LastName”将在DB中。如果我在这里指定它,我认为它应该试着按这个排序。无论哪种方式,它都可以在创建域对象后按自定义属性进行排序……是的,但字段LastNameFirstName不在数据库中,并且Linq不知道LastNameFirstName:中发生了什么。)