Kendo Grid Filter功能,服务器操作为True

时间:2016-01-01 11:37:01

标签: asp.net-mvc kendo-ui kendo-grid kendo-asp.net-mvc

我有一个kendo Grid可以提取大量数据。为了提高性能,我设置了ServerOperation(true),它为每个分页点击数据库,每次点击时只加载20条记录。

但是,当ServerOperation(true)时,kendo Grid Filter无法正常工作。 这是代码。如果我们使ServerOperation为false,则网格会立即检索所有数据,这将达到性能。请建议任何解决方案,使ServerOperation的过滤器为true。

@(Html.Kendo().Grid<ViewModel>().Name("Grid")
       .Columns(columns =>
           {
            columns.Bound(p => p.Id).Hidden();
            columns.Bound(p => p.Number).Filterable(filterable => filterable.UI("NumberFilter")).Width("150px").Locked(true);                              
             })
       .Filterable().Sortable()
       .Resizable(resizing => resizing.Columns(true))
       .Reorderable(reordering => reordering.Columns(true))
       .Pageable().Scrollable(scr => scr.Height(580))
       .DataSource(dataSource => dataSource.Ajax().PageSize(20)
       .Read(read => read.Action("LoadTransaction", ControllerName.).Data("geton"))

))



public ActionResult LoadTransaction(int clientid, string id)
{
         PagingInfo gvpi = UiControls.GetGridViewPagingInfo(Request.Form);
         gvpi.FilterColumns.Add(new PagingColumn() { Name = "ClientId", Value = clientId.ToString(), IsFullTextFilter = true });
         gvpi.FilterColumns.Add(new PagingColumn() { Name = "Id", Value = Id, IsFullTextFilter = true });

         gvpi.PageSize = 20;
         var pagedResult = _contextservice.GetAllByPage(gvpi);
         return UiControls.GetGridViewDataAsJson(pagedResult.GridData, pagedResult.RecordCount);
}

function geton()
{
     var clientId = $('#ClientId').val();
     var Id = $('#Id').val();
     return { clientId: clientId, Id: divisionId }
}

谢谢, 纳米萨

0 个答案:

没有答案