2011-01-10 2 views
1

JQGrid ASP.NET MVC2 버전을 사용하고 있습니다. 내가 마지막 줄에서 NullReferenceException이 얻을jqGrid ASP.NET MVC2 데이터 바인딩 NullReferenceException

public JsonResult ItemsDataRequested(int OrderID, int CustomerID) 
{ 
    // Get both the grid Model and the data Model 

    var gridModel = new OrderItemsjqGridModel(); 
    var orderItems = ordersRepository.GetOrder(OrderID).ItemsInOrders.ToList(); 

    IQueryable<ItemsInOrder> myItems = orderItems.AsQueryable<ItemsInOrder>(); 

    return gridModel.OrderItemsGrid.DataBind(myItems); 
} 

:

var itemsGridModel = new OrderItemsjqGridModel(); 
    itemsGridModel.OrderItemsGrid.DataUrl = Url.Action("ItemsDataRequested", new {OrderID = OrderID, CustomerID = CustomerID }); 
    orderVM.orderItemsGrid = itemsGridModel; 


    return View(orderVM); 

ItemsDataRequested :

는 모델과 컨트롤러를 만들었습니다. myItems에는 모든 값이 채워진 1 개의 항목이 있습니다.

어떤 아이디어 내가 잘못 했습니까?

감사합니다.

스택 트레이스 :

at Trirand.Web.Mvc.Util.PrepareJsonResponse(JsonResponse response, JQGrid grid, DataTable dt) 
    at Trirand.Web.Mvc.Util.ConvertToJson(JsonResponse response, JQGrid grid, DataTable dt) 
    at Trirand.Web.Mvc.JQGrid.FilterDataSource(Object dataSource, NameValueCollection queryString, IQueryable& iqueryable) 
    at Trirand.Web.Mvc.JQGrid.GetJsonResponse() 
    at Trirand.Web.Mvc.JQGrid.DataBind() 
    at Trirand.Web.Mvc.JQGrid.DataBind(Object dataSource) 
    at TechRun.UI.Controllers.OrdersController.ItemsDataRequested(Int32 OrderID, Int32 CustomerID) in y:\work\yosi\source\Techrun\TechRun.UI\Controllers\OrdersController.cs:line 118 
    at lambda_method(Closure , ControllerBase , Object[]) 
    at System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase controller, Object[] parameters) 
    at System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters) 
    at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters) 
    at System.Web.Mvc.ControllerActionInvoker.<>c__DisplayClassd.<InvokeActionMethodWithFilters>b__a() 
    at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation) 

모델 :

public class OrderItemsjqGridModel 
{ 
    public JQGrid OrderItemsGrid { get; set; } 

public OrderItemsjqGridModel() 
{    
    OrderItemsGrid = new JQGrid 
        { 
         Columns = new List<JQGridColumn>() 
         { 
          new JQGridColumn { DataField = "OrderID", 
               // always set PrimaryKey for Add,Edit,Delete operations 
               // if not set, the first column will be assumed as primary key 
               PrimaryKey = true, 
               Editable = false, 
               Width = 30 }, 
          new JQGridColumn { DataField = "ItemID", 
               PrimaryKey = true, 
               Editable = true, 
               Width = 120}, 
          new JQGridColumn { DataField = "ItemDescription", 
               Editable = true, 
               Width = 300}, 
          new JQGridColumn { DataField = "NumOfItems", 
               Editable = true, 
               Width = 50 
               }, 
          new JQGridColumn { DataField = "CostOfItem", 
               Editable = true, 
               Width = 75 }, 
          new JQGridColumn { DataField = "TotalCost", 
               Editable = false 
               }, 
          new JQGridColumn { DataField = "SuppolyDate", 
               Editable = true, 
               Width = 120, 
               DataFormatString = "{0:d}" }, 
         }, 
         Width = Unit.Pixel(640), 
         Height = Unit.Percentage(100) 
        }; 

    OrderItemsGrid.ToolBarSettings.ShowRefreshButton = true; 
    OrderItemsGrid.ToolBarSettings.ShowAddButton = true; 
    OrderItemsGrid.ToolBarSettings.ShowDeleteButton = true; 
    OrderItemsGrid.ToolBarSettings.ShowEditButton = true; 
} 

} 
+0

나에게도 똑같은 일이 일어났습니다. 행운을 빕니다. – IronicMuffin

답변

7

나는이 오래된 질문 알아요,하지만 난 행운과 같은 문제에 대한 해결책을 찾고 있었다, 나는 다시 돌아왔다 더 많은 예외 분석을위한 코드를 작성하고 해결책을 찾았으므로 여기에 로그하는 것이 좋으므로 누구나 동일한 문제가 발생합니다.

모델 JGridColumn 이름이 반환 된 SQL 쿼리 필드와 다른 이유가 발견되었습니다. 모델 열 중 하나에서 맞춤법 오류가 발생했습니다.

모든 JGrid 열의 이름이 SQL 쿼리 열의 이름과 동일한 지 확인하십시오.

+0

하이 샤디, 참으로 오래된 질문인데 더 이상 소스가 없습니다. 그래서 나는 당신을 당신의 말로 데려갑니다 ... 나는 이것을 대답으로 표시 할 것이고, 만약 누군가가 여기에 게시한다면, 평가 :-) – Dani