2009-10-13 51 views
1

有誰知道如何在使用複雜對象時排序MVCContrib網格。使用MVCContrib排序

我的網格顯示的人員列表,我試圖排序在Country屬性。問題是國家是一個地址類屬性,這是Person的一個屬性。

Person.Address.Country

<%Html.Grid(Model).Columns(column => 
    { 
     column.For(x => x.Id); 
     column.For(x => x.FirstName); 
     column.For(x => x.LastName).Sortable(false); 
     column.For(x => x.Address.Country).Sortable(false); 
     column.For(x => x.Age).Sortable(true); 
    }).Render(); %> 

例外:
屬性 '國家' 沒有爲類型定義 '{命名空間} .Person'
變種sourceProp = Expression.Property(sourceParam,這。排序方式); \ MVCContrib \ UI \ Grid \ Sortable \ ComparableSortList.cs行:41

任何建議將有所幫助。

謝謝

MG1

回答

1

一種解決方法是暴露Country爲屬性上Person和使用:

public string Country { get { return Address.Country; } } 
0

@orip給你一個答案。

但是,如果你想用你需要使用排序功能:

<%Html.Grid(Model).Columns(column => 
{ 
    column.For(x => x.Id); 
    column.For(x => x.FirstName); 
    column.For(x => x.LastName).Sortable(false); 
    column.For(x => x.Address.Country).Sortable(false); 
    column.For(x => x.Age).Sortable(true); 
}).RenderUsing(new SortableHtmlTableGridRenderer<Person>()) 
.Render(); %> 

來源:http://www.jeremyskinner.co.uk/2009/02/23/rewriting-the-mvccontrib-grid-part-3-gridmodels-and-gridrenderers/