2012-03-13 2 views
1

Может кто-нибудь дать мне руку с этим, пожалуйста.jqgrid Список объектов (с вспомогательными объектами) в качестве источника данных

у меня есть 2 классов, Foo и Moo

public class Foo 
{ 
    public int Id { get; set; } 
    public int price { get; set; } 
    public String code { get; set; } 
    public Moo moo { get; set; } 

public Foo() 
{ 
} 
} 


public class MOO 
{ 
    public int Id { get; set; } 
    public String firstname { get; set; } 
    public String surname { get; set; } 

    public MOO() 
    { 
    } 
} 

У меня есть список FOOS теперь

List<Foo> foolist 

Я могу сделать это DataSource для моего jqgrid. и сделать колонки для цены и кода, но я не могу использовать вложенные поля

Я хотел бы быть в состоянии сделать что-то вроде этого

<trirand:JQGridColumn DataField="moo.firstname" Searchable="true" /> 

любые идеи? Спасибо!

+0

вам удалось получить в любом месте с этим. Я страдаю той же проблемой и разместил здесь пример: http://stackoverflow.com/questions/9958084/null-reference-binding-jqgrid-to-object-that-contains-sub-objects. –

ответ

0

В принципе, вы можете изменить свой возвратный список. Вы создаете новый объект. Пример: InfoFoo. вы устанавливаете его свойство, используя классы Foo и Moo. Затем верните этот класс, List.

public class InfoFoo 
{ 
    public int Id { get; set; } 
    public int price { get; set; } 
    public String code { get; set; } 
    public int MooId { get; set; } 
    public String MooFirstname { get; set; } 
    public String MooSurname { get; set; } 
} 

для настройки свойств InfoFoo,

List<InfoFoo> ListInfoFoo=new List<InfoFoo>(); 
foreach(var foo in List<Foo>) 
{ 
    var infoFoo=new InfoFoo(); 
    infoFoo.Id=foo.Id; 
    infoFoo.Price=foo.Price; 
    infoFoo.code=foo.code; 
    infoFoo.MooId=foo.Moo.Id; 
    infoFoo.MooFirstName=foo.Moo.firstName; 
    infoFoo.MooSurname=foo.Moo.surname; 
    ListInfoFoo.Add(infoFoo); 
    } 

return ListInfoFoo; 
Смежные вопросы