2017-01-09 53 views
0

我正在使用Kendo Gridview來顯示一些記錄。這些記錄在Json中從數據庫中檢索並存儲在同一個類的列表中。當列表的計數爲1000時,我沒有任何問題,但是任何超過1000的數字都會觸發異常:「使用JSON JavaScriptSerializer進行序列化或反序列化時出現錯誤字符串的長度超過maxJsonLength屬性中設置的值無法將超過1000條記錄傳遞給kendo gridview

我試着改變web.config和appsettings中的maxJsonLength值,推薦在我在堆棧溢出中找到的一些解決方案中。但他們都沒有工作。這是我的看法:

@(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

不相關,但是您真的需要1000個或更多記錄才能在UI中顯示嗎? – Fabio

+0

嗨@Fabio,是的,我需要顯示存儲在數據庫中的所有記錄。爲此,我添加了分頁。 – Dannyboi

回答

0

我才明白,json的列表,我是路過的觀點有太多複雜的數據類型(即類對象和枚舉),那是沒有解決方案的原因工作。所以我提到了link中描述的解決方案,並創建了一箇中間視圖模型。在這個模型中,我添加了我想要的所有必要屬性並通過它來查看。它現在工作真的很好