2009-04-08 3 views
3

Verwenden von ASP.NET Dynamic Data mit einem LINQ to SQL Datacontext aus der Nordwind-Datenbank ...ASP.NET Dynamic Data DisplayColumn Attribut Verursachung Ausgabe Sortierung

Wenn ich ein DisplayColumn Attribut zu einem meiner LINQ hinzufügen entity to SQL Klassen und Referenz eine Eigenschaft von meinem benutzerdefinierten Code in der partiellen Klasse, verliere ich die Fähigkeit, nach dieser Spalte in der generierten GridViews zu sortieren. Ich kann weiterhin die Sortierbarkeit verlieren, auch wenn ich eine nicht benutzerdefinierte Eigenschaft als sortColumn referenziere.

Warum passiert das?

Beispielcode:

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

Aaron

EDIT: Die sortColumn die Spalte angibt, die verwendet werden, wird diese Einheit zu sortieren, wenn es als Fremdschlüssel (in einem Dropdown) verwendet wird, nicht, wenn es in der GridView sortiert wird.

Antwort

2

Sortierung von Entwurf sein kann ...

Die "SortColumn" gibt die Spalte, wird verwendet, um diese Entität zu sortieren, wenn sie als Fremdschlüssel (in einer DropDownList) verwendet wird, nicht wenn sie in der GridView sortiert ist.

2

Das ist richtig, weil die Eigenschaft nicht in der DB ist und LINQ to SQL wird versuchen, eine T-SQL-Abfrage an die DB zu erstellen, um Ihre Entitäten zu erhalten. aber wird fehlschlagen, weil dies keine Spalte mit diesem Namen ist.

+0

Aber der zweite Parameter, "LastName", wäre in der DB. Und wenn ich es dort spezifiziere, denke ich, dass es versuchen sollte, danach zu sortieren. So oder so könnte es nach der benutzerdefinierten Eigenschaft sortieren, nachdem es die Domain-Objekte erstellt hat ... –

+1

Ja, aber das Feld LastNameFirstName ist nicht in der DB und Linq weiß nicht, was in LastNameFirstName geht :) – Wizzard

0

Sie könnten versuchen, die ToString() - Methode zu überschreiben, die möglicherweise funktioniert, aber es würde nur nach der Entität filtern, auf die von der FK-Beziehung verwiesen wird.

0

Versuchen Hinzufügen [ScaffoldColumn (true)] - es könnte dynamische Daten verleiten ermöglichen

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

guten Gedanken - aber das ist nicht für mich arbeiten. Vielen Dank. –

+0

Dies ist nicht korrekt. –