привязка нулевой ссылки jqgrid к объекту, который содержит подобъекты - PullRequest
2 голосов
/ 31 марта 2012

Кто-нибудь знает, почему следующий код c # mvc.net дает исключение null ref при привязке базы данных к jqgrid?

Это сокращенный пример, иллюстрирующий проблему.

ЕслиЯ изменяю DataField = "MyClass.Id" на DataField = "Id". Он просто отлично связывается, но в моем реальном коде я пытаюсь привязать объект с двумя подобъектами и пытаюсь отобразить данные обоих объектов в одной сетке.

Любые предложения высоко ценится.Спасибо

(я видел этот пост, но он не получил ответа: jqgrid Список объектов (с подобъектами) как источник данных )

internal class MyWrapper
{
    public MyClass MyClass { get; set; }
    public int Id { get; set; }
}

internal class MyClass
{
    public int Id { get; set; }
}

public class TestController : Controller
{
    public ActionResult Index()
    {
        return View(GetGrid());
    }

    public JsonResult SearchGridDataRequested()
    {
        return GetGrid().DataBind(GetModel().AsQueryable());
    }

    private JQGrid GetGrid()
    {
        return new JQGrid
                   {
                       ID = "MyGrid",
                       DataUrl = Url.Action("SearchGridDataRequested"),
                       Width = Unit.Pixel(700),
                       Columns = new List<JQGridColumn>
                                     {
                                         new JQGridColumn
                                             {
                                                 DataField = "MyClass.Id",
                                                 PrimaryKey = true,
                                                 DataType = typeof (int)
                                             }
                                     }
                   };
    }


    private static IEnumerable<MyWrapper> GetModel()
    {
        return new List<MyWrapper>
                   {
                       new MyWrapper {Id = 1, MyClass = new MyClass {Id = 11}},
                       new MyWrapper {Id = 2, MyClass = new MyClass {Id = 12}},
                       new MyWrapper {Id = 3, MyClass = new MyClass {Id = 13}}
                   };
    }
}
...