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

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

کاربر سایت

alibahman47

عضویت از 1395/11/13

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

  • شنبه 25 شهریور 1396
  • 18:36
تشکر میکنم

درود

لینک پیجر 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" }))

خطا :

پاسخ های این پرسش

تعداد پاسخ ها : 2 پاسخ
کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

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

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

کاربر سایت

سهیل علیزاده

عضویت از 1396/04/09

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

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

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)