2017-01-09 1 views
0

일부 레코드를 표시하기 위해 검도 그리드 뷰를 사용하고 있습니다. 이러한 레코드는 데이터베이스에서 검색되어 같은 클래스의 목록에 저장 될 때 Json에 있습니다. 목록 수가 1000인데도 문제가 없지만 1000을 초과하는 숫자는 예외를 발생시킵니다. "JSON JavaScriptSerializer를 사용하여 직렬화 또는 비 직렬화 중에 오류 문자열의 길이가 maxJsonLength 속성에 설정된 값을 초과합니다 "검도 그리드 뷰에 1000 개가 넘는 레코드를 전달할 수 없습니다.

web.config 및 appsettings의 maxJsonLength 값을 스택 오버 플로우에서 발견 된 일부 솔루션에서 권장하는대로 변경하려고 시도했습니다. 그러나 그들 중 누구도 일하지 않습니다. 내가 JSON 내가보기에 전달 된 것은 너무 많은 복잡한 데이터 유형 (즉, 클래스 개체 및 열거)를했고, 그 솔루션의 이유도 문제가 해결되지 않았 음을 나열 것을 깨닫게되었다

@(Html.Kendo().Grid(Model) 

.Name("grid") 
.Scrollable() 
.Filterable() 
.Columns(columns => 
    { 
     //Columns added here 
    }) 
.Selectable(selectable => selectable.Mode(GridSelectionMode.Single)) 
.Pageable(pageable => pageable 
.Refresh(false) 
.PageSizes(true) 
.ButtonCount(3)) 
.DataSource(dataSource => dataSource 
    .Ajax() 
    .ServerOperation(false) 
    .Model(model => 
     { 
      model.Id(p => p.Id); 
      model.Field(p => p.Id).Editable(false); 

     }) 
    .Read(read => read.Action("Action", "Controller")) 
    .PageSize(50) 
    ) 
.Events(e => e.DataBound("selectDefault")) 
+0

'maxJsonLength'를 더 높게 설정할 수 있습니까? – devRicher

+2

관련 없음,하지만 UI에 표시 할 레코드가 실제로 1000 개 이상 필요합니까? – Fabio

+0

안녕하세요 @ Fabio, 예, 나는 데이터베이스에 저장된 모든 레코드를 표시해야합니다. 이를 위해 페이징을 추가했습니다. – Dannyboi

답변

0

: 이것은 내이다 . 그래서이 link에 설명 된 솔루션을 참조하고 중간 뷰 모델을 만들었습니다. 이 모델에서는 필자가 필요로하는 모든 속성을 추가하고이를보기 위해 전달했습니다. 지금은 정말 잘 작동합니다

관련 문제