2014-12-03 136 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,并让网格从数据中获取数据。