2015-03-20 3 views
1

Я использую сетку Kendo MVC. Использование таблицы данных вместо модели для отображения в сетке. и заполнение данных на основе страницы №. но подкачки не работает ниже мой код:Пейджинг Kendo Grid не работает должным образом

List.cshtml файл

@(Html.Kendo().Grid(Model) 
.Name("UserGrid") 
.EnableCustomBinding(true) 
.Columns(columns=> 
    { 
     foreach(System.Data.DataColumn column in Model.Columns) 
     { 
      columns.Bound(column.ColumnName).Title(column.Caption).Width(200); 
     } 
    } 
) 
.Selectable(selectable=>selectable 
    .Type(GridSelectionType.Row) 
) 
.Pageable() 
.Filterable() 
.DataSource(dataSource => dataSource 
    .Ajax() 
    .Model(model => 
     { 
      foreach(System.Data.DataColumn column in Model.Columns) 
      { 
       model.Field(column.ColumnName,column.DataType); 
      } 
     } 
    ) 
     .Total((int)ViewData["recordcount"]) 
    .Read(read => read.Action("Read", "User").Type(HttpVerbs.Get)) 
) 
) 

Вот код контроллера. Функция UserList будет возвращать данные в DataTable и чтение функции для заполнения данных и передать его через сетку:

private DataTable UserList() 
    { 
     DataSet ds = new DataSet(); 
     if (ViewData["pageno"] != null && Convert.ToInt16(ViewData["pageno"]) > 1) 
     { 
      iUserSearch.pageNumber = Convert.ToInt16(ViewData["pageno"]); 
     } 
     else 
     { 
      iUserSearch.pageNumber = 1; 
     } 
     iUserSearch.pageSize = 10; 
     ds = iUser.ListUser(iUserSearch); 
     var dataTable = new DataTable(); 

     dataTable = ds.Tables[0]; 
     if (ds.Tables[0].Rows.Count != 0) 
      ViewData["recordcount"] = (int)ds.Tables[0].Rows[0]["Totalcount"]; 
     return dataTable; 

    } 


    public ActionResult Read([DataSourceRequest] DataSourceRequest request) 
    { 
     //Paging and Sorting 
     int currentPage = request.Page; 
     int pageSize = request.PageSize; 

     ViewData["pageno"] = currentPage; 
     //Setting the TOTAL 
     DataTable dt = UserList(); 
     //return View("List",dt); 
     //var result = dt; 
     return Json(dt.ToDataSourceResult(request), JsonRequestBehavior.AllowGet); 
    } 
+0

Что вы имеете в виду подкачка не работает ? Что происходит? – ataravati

+0

при нажатии следующей страницы. данные не получают нагрузку. в то время как отладка модели показывает обновленные данные. кажется, не получается. – padh

+0

Вы используете пользовательский javascript-файл Kendo? Если да, убедитесь, что вы выбрали пейджинг как часть функций сетки. – ataravati

ответ

0

Я исправил проблему, назначая модели идентификатора ввиду

Смежные вопросы