ASP.NET Атрибут динамического отображения данных, Вызывающий проблему с сортировкой
-
06-09-2019 - |
Вопрос
Используя 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; }
}
}