У привязки модели много преимуществ и экономит много времени, когда вы хотите бросить некоторые данные в gridview на странице и получить ее и бег быстро. Например, я могу иметь этот класс EmployeeСортировка GridView для свойства навигации, использующего привязку модели в ASP.NET 4.5
public class Employee
{
public int Id { get; set; }
public string Name { get; set; }
public virtual ICollection<Job> Jobs { get; set; }
[NotMapped]
public Job CurrentJob
{
get { return Jobs.OrderByDescending(x => x.StartDate).FirstOrDefault(); }
}
Я бросаю это в GridView с использованием модели Binding и поле шаблона для вычисленного объекта:
<asp:GridView runat="server" id="gvDataItemType" ItemType="Model.Employee" SelectMethod="Select" AllowSorting="True">
<Columns>
<asp:DynamicField DataField="Name"/>
<asp:DynamicField DataField="Email"/>
<asp:TemplateField HeaderText="Job" SortExpression="???">
<ItemTemplate>
<asp:Label ID="lblJobTitle" Text='<%# Bind("CurrentJob.JobName") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
...
со следующим Выбор метода в коде позади:
public IQueryable<Employee> Select()
{
MyContext context = new MyContext();
return context.Employees;
}
Все виды чудесно за исключением, очевидно, свойства CurrentJob.JobName.
Мой вопрос: Как я могу сортировать GridView в свойстве CurrentJob.JobName?
Интересно ... Спасибо. Это также может быть полезно. – Mike