با سلام
اگر بخواهیم در MVC صفحه بندی داشته باشیم با استفاده از SKIPو TAKE این کار به راحتی امکان پذیر است برای مثال
int skip = (PageID - 1) * 5; var users = db.Users.Include(u => u.Roels).OrderBy(u => u.UserID).Skip(skip).Take(5).ToList(); ViewBag.PageID = PageID; ViewBag.Count = db.Users.Count(); return View(users);
ولی اگر بخواهیم از گرید کندو استفاده کنیم از این روش نمی توان استفاده کرد (! اگر می شود من نمی دونم و سوالم همینه که چطور میشه استفاده کرد؟)
در مثال های خود کندو از Ajax استفاده شده به این صورت که در View
@(Html.Kendo().Grid<onsou.Models.Users>() .Name("Grid") .Columns(columns => { columns.Bound(model => model.UserEmail); columns.Bound(model => model.UserIsActive); columns.Bound(model => model.UserRegisterDate); columns.Bound(model => model.Roels.RoleTitle); columns.Bound(item => @item.UserID).Title("دستورات").Filterable(false).Groupable(false) .Template(@<text> @Html.ActionLink("ویرایش", "Edit", new {id = @item.UserID}, new {@class = "k-button k-button-icontext k-grid-Edit"}) @Html.ActionLink("حذف", "Delete", new {id = @item.UserID}, new {@class = "k-button k-button-icontext k-grid-Delete"}) </text>).Width(200); }) .ToolBar(toolbar => { toolbar.Custom().Action("Create","Users").Text("افزودن"); } ) .Groupable() .Pageable() .Sortable() .Scrollable() .Filterable() .DataSource( dataSource => dataSource .Ajax() .Read(read => read.Action("Users_Read", "Users")) // Set the action method which will return the data in JSON format ) )
و در کنترلر
public ActionResult Users_Read([DataSourceRequest]DataSourceRequest request) { IQueryable<Users> users = db.Users.Include(u => u.Roels); users = users.OrderBy(o => o.UserID); var total = users.Count(); // Apply paging if (request.Page > 0) { users = users.Skip((request.Page - 1) * request.PageSize); } users = users.Take(request.PageSize); var result = new DataSourceResult() { Data = users, // Process data (paging and sorting applied) Total = total // Total number of records }; return Json(result,JsonRequestBehavior.AllowGet); }
از این کد استفاده شده
ولی متاسفانه وقتی من این کد را اجرا می کنم هیچ فید بکی ندارم و گرید خالی باقی می ماند ( با اینکه تابع User_Read فراخوانی می شود)
حالا سوال من اینه
برای پیاده سازی صفحه بندی در گرید کندو آیا روشی هست که با استفاده از Take و Skip خودمون دکمه های صفحه بعد و قبل رو کنترل کنیم ؟
اگر نه به نظر شما چرا این Bind کردن Ajax ای هیچ فید بکی ندارد
( البته جواب این سوال دوم رو تقریبا می دونم چرا که توی کنسول ارور ReferenceError: jQuery is not defined jQuery(function(){jQuery("#Grid").kendoGrid({"columns":[{"title":"ایمیل","field"...
میده ولی Jquery به وضوح تعریف شده و من نمی دونم چرا شناسایی نمیشه ؟)
ممنون از راهنمایی شما
شما میتونید Pagging کندو را غیر فعال کنید و خودتون مدیریت صفحات رو با استفاده از Take و Skip بر عهده بگیرید
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)