2014-03-28 2 views
1

Asp.Net MVC에서 Kendo Grid를 바인딩하려고하지만 페이징이 작동하지 않습니다. PageSize 및 Total 레코드가 올바르지 만 문제는 다음 페이지로 이동할 수 없다는 것입니다. 모든 버튼이 표시되지만 비활성화됩니다.Kendo Grid 페이징이 Asp.Net MVC에서 작동하지 않습니다.

뷰의 코드는 다음과 같습니다

<% Html.Kendo().Grid(Model) 
     .Name("PartListGrid") 
     .Columns(columns => 
     { 
      columns.Bound(p => p.Id).Title("Id").Visible (false); 
      columns.Bound(p => p.Quantity).Title("Quantity")).Width(130); 
      columns.Bound(p => p.PartNumber).Title("Part Number").Width(130); 
     }) 
     .DataSource(dataSource => dataSource 
      .Ajax() 
      .Model(model => model.Id(p=>p.Id)) 
      .PageSize(5) 
      .ServerOperation(false) 
     ) 
     .Pageable() 
     .Render();           
%> 

컨트롤러의 코드 : 어떤 조언을 감사

public ActionResult GetPartListInfo(string id) 
{     
    List<PartListViewModel> partList = new List<PartListViewModel>(); 
    XrmServiceContext xrmServiceContext = new XrmServiceContext(); 
    f1_workorder workOrder = xrmServiceContext.f1_workorderSet.Where(i => i.Id == new Guid(workOrderId)).FirstOrDefault(); 
    PartListViewModel partViewModel = null; 

    foreach (f1_workorderproduct workorderproduct in xrmServiceContext.f1_workorderproductSet.Where(i => i.f1_WorkOrder.Id == workOrder.Id).ToList()) 
    { 
     Product product = xrmServiceContext.ProductSet.Where(j => j.Id == workorderproduct.f1_Product.Id).FirstOrDefault(); 

     partViewModel = new PartListViewModel(); 
     partViewModel.Id = workorderproduct.f1_Product.Id.ToString(); 
     partViewModel.Quantity = workorderproduct.f1_EstimateQuantity.GetValueOrDefault(0); 
     partViewModel.PartNumber = workorderproduct.f1_name;        

     partList.Add(partViewModel);  
    }  

    return View("PartList",partList); 
} 

! 도움 주셔서 대단히 감사합니다!

미미

답변

1

난 당신이 필요로 할 때 데이터 세트 페이징의 데이터를 가져올 수 있도록 데이터 소스 읽어 구성에 던져해야 내기.

.DataSource(dataSource => dataSource 
    ... 
    .Read(read => read.Action("YourAction", "YourController)) 
    ... 
+0

F12를 사용하여 ID 입력란을 확인하고 요청에 ID가 사용되고 있는지 확인하십시오. 그게 전송되지 않을 수도 있습니다. –

+0

이 줄이 필요하지 않습니다. Model (model => model.Id (p => p.Id)). 그리드의 Update/Insert/Delete 명령을 사용할 때만 필요합니다. –

+0

안녕하세요, 답변을 주셔서 감사하지만 컨트롤러에서 메서드를 호출 할 때 .Read (읽기 => read.Action ("GetParts", "Claim", 새 {id = Model.WoId}) 표시되지 않습니다. 그리드의 모든 것, 이전처럼 <% Html.Kendo(). Grid (Model) \t .Name ("PartListGrid") ... 매개 변수에서 모델을 전달할 수 없기 때문에 그리드가 바인딩되지 않았습니다. 대신 그리드 유형을 다음과 같이 전달합니다. <% Html.Kendo(). Grid () \t .Name ("PartListGrid") ... – user3470946

관련 문제