2014-12-03 67 views
0

我想打開一個劍道網格上的無盡滾動,在這個框架中稱爲virtual scrolling劍道網格虛擬滾動(無限滾動)不起作用

摘要:

1) I load the page => the Action Virtualization_Read is called (OK) 
2) I scroll down the Grid till bottom => the Action Virtualization_Read is called anothter time in order to get more data (KO) 

的結果是,當我到達網格的底部,有滾動條,即retrives數據的操作方法不再被擊中。

這是我的網格,它顯示在我的應用程序所產生的痕跡:

@(Html.Kendo().Grid<Credit.Entity.ServiceObjects.MsgBlock>(Model.ListadoTrazas) 
            .Name("grdTrazas") 
           .Columns(columns => 
           { 
            columns.Bound(c => c.LogID).Filterable(true); 
            columns.Bound(c => c.Timestamp).Filterable(false); 
            columns.Bound(c => c.FormattedMessage).Filterable(false).Width("80%"); 

           }) 
           .Scrollable(s => s.Virtual(true)) 
           }) 

           .DataSource(dataSource => dataSource 
            .Ajax() 
            .PageSize(100) 
            .ServerOperation(true) 
            .Read(read => read.Action("Virtualization_Read", "Logging")) 
           ) 

           ) 

這是MVC3的行動,獲取數據。此操作被稱爲僅在第一次,當頁面被加載:

public ActionResult Virtualization_Read([DataSourceRequest] DataSourceRequest request) 
    { 
     return Json(GetData(request.Page, request.PageSize).ToDataSourceResult(request)); 
    } 

    [NonAction] 
    private List<MsgBlock> GetData(int page, int getCount) 
    { 
     MVCLogging model = new MVCLogging(); 

     // Fetches the data 
     return model.ListadoTrazas; 
    } 

Model MsgBlock具有在網格列方法中定義的相同的屬性:

  • LOGID
  • 時間戳
  • FormattedMessage

我忘記了什麼嗎?

回答

1

我在這裏看到的唯一潛在問題是,您正在網格上利用服務器操作,但用一組數據初始化網格而不是讓它獲取初始數據。在使用MVC擴展劍道演示虛擬化時,格網定義是這樣的:

@(Html.Kendo().Grid<Kendo.Mvc.Examples.Models.OrderViewModel>() 
.Name("grid") 
.Columns(columns => 
{ 
    columns.Bound(o => o.OrderID).Width(60); 
    columns.Bound(o => o.CustomerID).Width(90); 
    columns.Bound(o => o.ShipName).Width(220); 
    columns.Bound(o => o.ShipAddress).Width(280); 
    columns.Bound(o => o.ShipCity).Width(110); 
    columns.Bound(o => o.ShipCountry).Width(110); 
}) 
.Sortable() 
.Scrollable(scrollable => scrollable.Virtual(true)) 
.HtmlAttributes(new { style = "height:430px;" }) 
.DataSource(dataSource => dataSource 
    .Ajax() 
    .PageSize(100) 
    .Read(read => read.Action("Virtualization_Read", "Grid")) 
) 
) 

注意,類型被供給後(Kendo.Mvc.Examples.Models.OrderViewModel)有未提供初始數據集的,而初始化嘗試爲網格提供它需要呈現的數據(Model.ListadoTrazas)。也許這讓網格感到困惑,認爲它有所有的數據需求?我會試着拿出Model.ListadoTrazas,並讓網格從數據中獲取數據。