ASP.NET Dynamic Data DisplayColumn Attribut Causer Tri Problème
-
06-09-2019 - |
Question
Utilisation de ASP.NET Dynamic Data avec LINQ to SQL DataContext de la base de données Northwind ...
Quand j'ajouter un attribut DisplayColumn à l'un de mes classes LINQ to SQL entity
et faire référence à une propriété de mon code personnalisé dans la classe partielle, je perds la possibilité de trier par cette colonne dans le produit GridViews . Je continue à perdre la possibilité de trier, même si je référence une propriété non personnalisée comme sortColumn
.
Pourquoi est-ce qui se passe?
Exemple de code:
[DisplayColumn("LastNameFirstName", "LastName", false)]
public partial class Employee
{
public string LastNameFirstName
{
get { return LastName + ", " + FirstName; }
}
}
Aaron
EDIT: Le sortColumn
spécifie la colonne qui sera utilisée pour trier cette entité quand il est utilisé comme une clé étrangère (dans un DropDownList ), pas quand il est trié dans le GridView .
La solution 2
Cela peut être par la conception ...
Le « sortColumn » spécifie la colonne qui sera utilisée pour trier cette entité quand il est utilisé comme une clé étrangère (dans un DropDownList), pas quand il est trié dans le GridView.
Autres conseils
C'est exact parce que la propriété est dans le DB et LINQ to SQL va essayer de construire une quert T-SQL à la base de données pour obtenir vos entités. mais échouera parce que c'est pas de colonne avec ce nom.
Vous pouvez essayer redéfinissant la méthode ToString () qui pourrait fonctionner, mais il serait seulement un filtre sur l'entité référencée par la relation FK.
Essayez d'ajouter [ScaffoldColumn (true)] - il pourrait duper des données dynamiques pour activer le tri
[DisplayColumn("LastNameFirstName", "LastName", false)]
public partial class Employee
{
[ScaffoldColumn(true)]
public string LastNameFirstName
{
get { return LastName + ", " + FirstName; }
}
}