2011-08-14 9 views
0

Telerik MVC Grid를 사용하여 배치 모드 편집 http://demos.telerik.com/aspnet-mvc/grid/editingbatch에 대해 구성했습니다. City가 다른 주체 인 List of Cities가있는 내 주체 "State"중 하나를 편집하려고합니다. State Entity의 모습은 다음과 같습니다.Telerik MVC3 그리드 - 일괄 편집 문제

public class State { 
    ...Some Scalar Properties 
    public virtual List<City> Cities { get; set; } //Navigation Property 
    public State() { 
     Cities = new List<City>(); 
    } 
} 

내 도시 엔티티는 아래 주어진대로 상태를 나타냅니다.

public class City { 
    ... Some Scalar Properties 
    public virtual State State { get; set; } //Navigation property 
} 

나는 정상적인 방법으로 일괄 업데이트를 처리하고 내 컨트롤러에서이

@(Html.Telerik().Grid<State>() 
      .Name("tlkStateGrid") 
      .Editable(e => e.Mode(GridEditMode.InCell).DisplayDeleteConfirmation(false)) 
      .ToolBar(t => { 
       t.Insert().ButtonType(GridButtonType.Image); 
       t.SubmitChanges().ButtonType(GridButtonType.Image); 
      }) 

...Some More of code here. 

처럼 내 cshtml 페이지 중 하나에 몇 가지 일을이 모델을 사용하고 있습니다.

public ActionResult _SaveChanges(IEnumerable<State> inserted, IEnumerable<State> updated, IEnumerable<State> deleted) { 
..... 
} 

나는 Telerik 그리드, 수정 된 모든 상태의 항목이 위의 컨트롤러 액션의 (IEnumerable을 업데이트) 매개 변수의 일괄 편집을 사용하여 주 개체를 편집 할 때. 그러나 주에는 도시가 하나도없는 도시 목록 (null)이 있습니다.

요점은 내가 코드의 일부에서 도시를 만들지 않았지만 위에 나열된 컨트롤러 동작에 대한 상태를 매개 변수로 받으면 도시 목록에있는 null 도시가 있음을 의미합니다. 왜 이런 일이 생길까요?

답변

0

나는이 문제를 충분히 이해하지 못한다. 그리드 게시가 완료되면 상태을 새로 만듭니다. 상태 인 개체에는 null 도시 개체가 있습니다. 그게 문제 야? 또는 나는 무엇인가 놓쳤 느냐?

이것이 문제인 경우 정상적인 동작이므로 예상해야합니다. MVC3의 자동 JSON 역 직렬화가 작동하는 방식입니다. 부모 객체를 만들고 중첩 객체를 정의하지 않을 때마다 중첩 객체는 null로 반환됩니다. 코드에서 null을 처리하십시오.

+0

답장을 보내 주셔서 감사합니다.하지만 그리드에서 배치 편집을 사용하지 않기로 결정했습니다. 사용자에게는 다소 혼란 스러웠습니다. 그런 긴 간격 후에도 여전히 질문에 답을 얻으 려니 참 잘합니다. 큰. – Jatin

+0

문제 없어요. 전에 내가 이것을 보았다면 나는 더 일찍 대답했을 것이다. 나는 일괄 편집이 사용자에게 혼란을 줄 것이라고 생각했지만 사용자는 실제로 편집 프로세스를 "더 많은 Excel과 같아지기"를 원했습니다. 그림을 이동. – Will

관련 문제