2016-12-26 6 views
0

Я использую сетку kendo с подкачкой на стороне сервера. Я делаю сортировку и выборку данных на самой стороне базы данных, которая дает мне только количество записей в тысячах страниц. Я также получаю подсчет полных записей из самого бэкэнда. Я просто хочу привязать эти данные к сетке кендо, указав номер страницы в соответствии с возвращаемым множителем.kendo ui сетка полная сторона сервера пейджинг и установка общего количества

i.e для каждого запроса следующей страницы Я просто возвращаю страницы (например, 15) количество записей с общим количеством записей. Ниже приведен мой код для сетки кендо. Пожалуйста, помогите мне связать эти записи и показать номера страниц в соответствии с общим количеством.

@(Html.Kendo().Grid(Model.InvoiceList) 
.Name("InvoiceGrid") 
.Columns(columns => 
{ 
columns.Bound(p => p.CompanyName).Title("Company Name").Width(80); 
columns.Bound(p => p.Account).Title("Account").Width(60); 
columns.Bound(p => p.MerchantNumber).Title("Merchant No.").Width(60); 
columns.Bound(p => p.InvoiceAmount).Title("Invoice Amount").Width(60); 
columns.Bound(p => p.ReferralPercentage).Title("Referral %").Width(60); 
columns.Bound(p => p.ReferralCommission).Title("Referral Com.").Width(60); 
columns.Bound(p => p.DeveloperPercentage).Title("Developer %").Width(60); 
columns.Bound(p => p.DeveloperCommission).Title("Developer Com.").Width(60); 
}) 
.Pageable(
) 
.Sortable() 
.Filterable(filterable => filterable 
    .Extra(false) 
    ) 
.DataSource(dataSource => dataSource 
.Ajax() 
    .Batch(false) 
    .PageSize(15) 
     .ServerOperation(true) 
     .Read(read => read.Action("Index", "Invoice") 
    ).Total(Model.count) 
) 
) 

Мой код на стороне сервера, который я использую для извлечения записей, приведен ниже.

public async Task<ActionResult> IndexAsync(int pageNo=0,int numberOfRecord=15) 
    { 

     //InvoicePaging has invoice list of 15 records and count = 400 
     InvoicePaging ip = await InvoiceDAL<FileRecord>.getAllInvoices("SProcGetInvoiceList", pageNo, numberOfRecord); 
     return View("InvoiceList",ip); 
    } 

Счет пейджинговой класс -

public class InvoicePaging 
{ 
    [JsonProperty(PropertyName = "InvoiceList")] 
    public List<Invoice> InvoiceList { get; set; } 

    [JsonProperty(PropertyName = "count")] 
    public int count { get; set; } 
} 

ответ

0

После поиска решения задачи я получил следующий код работает для меня.

@(Html.Kendo().Grid<Commission.Vault.Models.Invoice>() 
.Name("InvoiceGrid") 
.Columns(columns => 
{ 
columns.Bound(p => p.CompanyName).Title("Company Name").Width(80); 
columns.Bound(p => p.Account).Title("Account").Width(60); 
columns.Bound(p => p.MerchantNumber).Title("Merchant No.").Width(60); 
columns.Bound(p => p.InvoiceAmount).Title("Invoice Amount").Width(60); 
columns.Bound(p => p.ReferralPercentage).Title("Referral %").Width(60); 
columns.Bound(p => p.ReferralCommission).Title("Referral Com.").Width(60); 
columns.Bound(p => p.DeveloperPercentage).Title("Developer %").Width(60); 
columns.Bound(p => p.DeveloperCommission).Title("Developer Com.").Width(60); 
}) 

.EnableCustomBinding(true) 
.BindTo(Model.InvoiceList) 
.Pageable(
) 
.Sortable() 
.Filterable(filterable => filterable 
    .Extra(false) 
    ) 
.DataSource(dataSource => dataSource.Server().Total(Model.count).PageSize(15) 
) 
) 

И код позади его в Asp.net является

public async Task<ActionResult> IndexAsync([DataSourceRequest(Prefix = "InvoiceGrid")] DataSourceRequest request) 
    { 
     List<Invoice> il = new List<Invoice>(); 
     int pageNo = request.Page-1,numberOfRecord=15; 
     InvoicePaging ip = await InvoiceDAL<FileRecord>.getAllInvoices("SProcGetInvoiceList", pageNo, numberOfRecord); 
     return View("InvoiceList",ip); 
    } 

Единственное, что я всегда получаю PAGESIZE в 0. Другие все работает отлично.

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

  • Нет связанных вопросов^_^