ASP.NET Атрибут динамического отображения данных, Вызывающий проблему с сортировкой

StackOverflow https://stackoverflow.com/questions/731502

Вопрос

Используя ASP.NET Динамические данные с помощью LINQ to SQL DataContext из базы данных Northwind...

Когда я добавляю атрибут DisplayColumn к одному из моих LINQ to SQL entity классы и ссылаются на свойство из моего пользовательского кода в частичном классе, я теряю возможность сортировать по этому столбцу в сгенерированном Просмотр сетки.Я по-прежнему теряю возможность сортировки, даже если я ссылаюсь на нестандартное свойство как sortColumn.

Почему это происходит?

Пример кода:

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

Аарон

Редактировать:В sortColumn указывает столбец, который будет использоваться для сортировки этого объекта, когда он используется в качестве внешнего ключа (в Выпадающий список), а не тогда, когда он сортируется в Просмотр сетки.

Это было полезно?

Решение 2

Это может быть сделано намеренно...

"sortColumn" указывает столбец, который будет использоваться для сортировки этого объекта, когда он используется в качестве внешнего ключа (в выпадающем списке), а не когда он сортируется в GridView.

Другие советы

Это правильно, потому что свойства нет в базе данных, и linq to SQL попытается создать запрос T-SQL к базе данных, чтобы получить ваши сущности.но произойдет сбой, потому что здесь нет столбца с таким именем.

Вы могли бы попробовать переопределить метод toString(), который мог бы сработать, но он будет фильтровать только объект, на который ссылается отношение FK.

Попробуйте добавить [ScaffoldColumn(истинный)] - это может обмануть динамические данные, чтобы включить сортировку

[DisplayColumn("LastNameFirstName", "LastName", false)]
public partial class Employee
{
    [ScaffoldColumn(true)]
    public string LastNameFirstName
    {
        get { return LastName + ", " + FirstName; }
    }
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top