3

NorthwindデータベースからのLINQtoSQLDataContextでのASP.NET動的データの使用...

LINQ to SQLクラスの1つにDisplayColumn属性を追加entityし、部分クラスのカスタムコードからプロパティを参照すると、生成されたGridViewsでその列で並べ替えることができなくなります。非カスタムプロパティをとして参照しても、並べ替えの機能が失われ続けますsortColumn

なぜこうなった?

サンプルコード:

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

アーロン

編集:は、 GridViewで並べ替えられているときではなく、 ( DropDownListsortColumnで)外部キーとして使用されているときにこのエンティティを並べ替えるために使用される列を指定します。

4

4 に答える 4

2

プロパティが DB になく、linq to SQL が DB への T-SQL クエリを作成してエンティティを取得しようとするため、これは正しいことです。これらはその名前の列ではないため失敗します。

于 2009-04-10T11:07:29.090 に答える
2

これは設計によるものかもしれません...

"sortColumn" は、このエンティティが GridView で並べ替えられているときではなく、(DropDownList で) 外部キーとして使用されるときに、このエンティティを並べ替えるために使用される列を指定します。

于 2010-01-25T22:42:53.503 に答える
0

機能する可能性のある ToString() メソッドをオーバーライドしてみることができますが、FK 関係によって参照されるエンティティのみをフィルター処理します。

于 2009-04-15T12:40:30.120 に答える
0

[ScaffoldColumn(true)]を追加してみてください- 動的データをだまして並べ替えを有効にする可能性があります

[DisplayColumn("LastNameFirstName", "LastName", false)]
public partial class Employee
{
    [ScaffoldColumn(true)]
    public string LastNameFirstName
    {
        get { return LastName + ", " + FirstName; }
    }
}
于 2009-11-23T19:09:13.720 に答える