2016-03-09 73 views
0

加載新數據到網格後,Kendo網頁尋呼機運行異常有問題。網格在頁面加載時加載,配置如下:加載新數據後Kendo網頁尋呼機問題

@(Html.Kendo().Grid<MyModel>() 
      .Name("Grid") 
      .Columns(columns => 
      { 
       //snipped 
      }) 
      .Scrollable() 
      .Sortable(sort => sort.Enabled(true)) 
      .Pageable(pager => pager.PageSizes(new int[] {10, 25, 50, 100})) 
      .Events(events => events.DetailExpand("detailExpand").DetailCollapse("detailCollapse").DataBinding("onDataBinding")) 
      .ClientDetailTemplateId("template") 
      .DataSource(dataSource => dataSource 
       .Ajax() 
       .ServerOperation(false) 
       .Sort(sort => sort.Add(Model.sort).Order(Model.Direction)) 
       .PageSize(Model.PageSize) 
       .Events(events=>events.Error("onError")) 
       .Read(read => read.Action("Summary", "Summary").Data("getFilterModel"))) 
       .Events(events => events.DataBound("dataBound")) 
       .Resizable(resize => resize.Columns(true)) 
       .Reorderable(reorder => reorder.Columns(true)) 
      ); 

我在頁面上有一些控件用作網格內容的過濾器。 getFilterModel函數返回這些過濾器的值。當用戶點擊「過濾器」按鈕時,我會在網格數據源上調用讀取。

<button class="k-button" id="get" type="button" onclick="$('#Grid').data('kendoGrid').dataSource.read();return false;">Filter</button> 

該工程確定在初始頁面加載,如果我重新加載網格中的行數< =行的原始數量。如果我用更多的行重新加載,分頁器顯示正確的計數。但是,如果我嘗試點擊以前進到下一頁,則尋呼機僅恢復顯示1頁,並且網格顯示爲空。

例如:初始加載包含3條記錄,頁面大小爲25. Pager顯示1頁。好。更改過濾器,以便網格加載42行。尋呼機顯示2頁,設置爲第1頁,以及「42項中的1-25」。點擊進入第2頁;網格顯示沒有行,尋呼機顯示1頁和「25-25項中的26-25」

尋呼機是否需要以某種方式顯式重置?

這是Kendo MVC的舊版本... DLL顯示版本2013.3.1119.340。

回答

0

在這種情況下,我和Kendo MVC超越了自己。

getFilterModel函數返回一個包含PagePageSize屬性的對象,該屬性在HTTP請求中被轉換爲查詢參數名稱。這些依次成爲FilterModel對象的屬性,該對象是控制器操作的模型。在服務器端,控制器動作調用Kendo ToDataSourceResult擴展方法,該方法顯然解釋PagePageSize,並且僅返回結果的第一頁。

將這些屬性的名稱更改爲GridPageGridPageSize解決了該問題。我已經包括了他們,因爲我想堅持他們作爲電網狀態的一部分,但我可能會更好找到另一種方式來做到這一點。