ASP.NET Dynamic Data DisplayColumn Attribute Causi

2019-05-10 17:52发布

Using ASP.NET Dynamic Data with a LINQ to SQL DataContext from the Northwind Database...

When I add a DisplayColumn Attribute to one of my LINQ to SQL entity classes and reference a property from my custom code in the partial class, I lose the ability to sort by that column in the generated GridViews. I continue to lose the ability to sort even if I reference a non-custom property as the sortColumn.

Why is this happening?

Example Code:

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

Aaron

EDIT: The sortColumn specifies the column that will be used to sort this entity when it is used as a foreign key (in a DropDownList), not when it is being sorted in the GridView.

4条回答
Deceive 欺骗
2楼-- · 2019-05-10 18:31

That is correct because the property is not in the DB and linq to SQL will try to construct a T-SQL quert to the DB to get your entities. but will fail because these is no column with that name.

查看更多
等我变得足够好
3楼-- · 2019-05-10 18:34

This may be by Design...

The "sortColumn" specifies the column that will be used to sort this entity when it is used as a foreign key (in a DropDownList), not when it is being sorted in the GridView.

查看更多
男人必须洒脱
4楼-- · 2019-05-10 18:41

You could try overriding the ToString() method that might work but it would only filter on the entity referenced by the FK relationship.

查看更多
疯言疯语
5楼-- · 2019-05-10 18:43

Try adding [ScaffoldColumn(true)] - it might trick dynamic data to enable sorting

[DisplayColumn("LastNameFirstName", "LastName", false)]
public partial class Employee
{
    [ScaffoldColumn(true)]
    public string LastNameFirstName
    {
        get { return LastName + ", " + FirstName; }
    }
}
查看更多
登录 后发表回答