با سلام
اگر بخواهیم در 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 بر عهده بگیرید
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)