مرجع تخصصی برنامه نویسان

بزرگترین انجمن برنامه نویسان فارسی زبان

شیوه کار کردن با Pager ایجکسی X.PagedList

شنبه, 25 شهریور 1396 18:36

شیوه کار کردن با Pager ایجکسی X.PagedList

درود

لینک پیجر X.PagedList : لینک منبع

قبلا خیلی دنبال یه پیجر جدید و بروز برای Mvc 5 گشتم و چیزی پیدا نکردم و با توجه به اومدن Core این مثلا هم طبیعی هست ,

ولی چندروز پیش این مورد رو پیدا کردم که خیلی بروزه و ظاهرا همه حالت ها و قالبیت های ممکن رو داره و هم برای Core و هم برای Mvc قابل استفاده هست ,

من مستندات رو پیش رفتم ولی جواب نگرفتم و نتونستم پیجر رو بسازم ,

لطفا راهنمایی کنید که شیوه درست استفاده چیه ؟

من یک لیست از جدول Tbl_Prosucts رو به سمت ویو فرستادم و در پیجر هم مدل رو نوشتم ولی اخطار زیر رو میده.

کد های من :

کنترولر :

        public object AjaxPager(int? page)
        {
            var listPaged = Bl_Product.Where(p => p.ExistCount > 0).ToList(); // GetPagedNames is found in BaseController
            if (listPaged.Count == 0)
                return HttpNotFound();

            return Request.IsAjaxRequest()
                ? (ActionResult)PartialView("UnobtrusiveAjax_Partial", listPaged)
                : View(listPaged);

        }

ویو :

@{
    ViewBag.Title = "AjaxPager";
    Layout = "~/Views/Shared/Layout/_LayoutFinal.cshtml";
}
@model IEnumerable<WebShopping2017.Models.Domain.Tbl_Products>
@using System.Web.Optimization
@using PagedList.Mvc;

@Styles.Render("~/Content/PagedList.css")

<h2>Unobtrusive Ajax</h2>

<p>Example of paging a list:</p>
<div id="unobtrusive">
    @Html.Partial("UnobtrusiveAjax_Partial", Model)
</div>
<div id="oncomplete"></div>

@section Scripts{
<script src="~/Scripts/jquery/jquery.unobtrusive-ajax.min.js"></script>
    <script>
        function PagedOnComplete(obj) {
            console.log(obj);
            var $oncomplete = $('#oncomplete');
            $oncomplete
                .text('Paging operation completed.')
                .css('backgroundColor', 'yellow')
                .fadeOut({complete: function () {
                    $oncomplete.css('backgroundColor', 'transparent').text('').show();
                }});
        }
    </script>
}

پارشیال ویو :

@model IEnumerable<WebShopping2017.Models.Domain.Tbl_Products>
@using PagedList
@using PagedList.Mvc
@Html.PagedListGoToPageForm((IPagedList)Model, Url.Action("AjaxPager"))

<ul id="names" start="1">
    @foreach (var i in Model.ToList())
    {
        <li>@i.Title</li>
    }
</ul>

@Html.PagedListPager((IPagedList)Model, page => Url.Action("AjaxPager", new { page }), PagedListRenderOptions.EnableUnobtrusiveAjaxReplacing(new AjaxOptions() { HttpMethod = "Post", UpdateTargetId = "unobtrusive", OnComplete = "PagedOnComplete" }))

خطا :

یکشنبه, 26 شهریور 1396 09:20

این ارور میگه مدل صفحه با مدل ارسال شده همخوانی ندارد

یکشنبه, 26 شهریور 1396 10:50

اگر مستندات را بررسی کنید عملیات casting یا unboxing برروی viewbag انجام شده نه Model ، نوع داده viewBag یک شی یعنی object می باشد به راحتی میتوان آن را unbox کرد. برای حل مشکل از viewbag استفاده کنید.

ارسال پاسخ برای این تاپیک

ارسال پاسخ مخصوص اعضا سایت می باشد ! میتوانید با حساب کاربری خود وارد سایت شده یا ثبت نام کنید