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

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

کاربر سایت

محمد ملکی

عضویت از 1394/03/02

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

  • پنجشنبه 12 اسفند 1395
  • 10:43
تشکر میکنم

با سلام

آقای مدائنی من یه صفحه پروژه دارم که به صورت زیر هست یعنی دو جور پروژه دارم که 1-انجام شده 2-در حال اجرا

لحضه اول که صفحه پروژه بالا میاد مورد 1 که پروژه های انجام شده رو نمایش میدهد که با استفاده از اسکرول نامحدود هر چقدر بیاید پایین پروژه ها لود مشه

حالا میخوام وقتی روی در حال اجرا کلیک کرد بره پروژه های در حال اجرا رو بیاره وقتی روی انجام شده زد بره اون پروژه های انجام شده رو بیاره چون اسکرول نامحدود هست نمیدونم چه جوری اینو بهش بگم که رو انجام شده زد چیکار کنه یا رو در حال اجرا کلیک کرد چیکار کنه

با این تابع کار میکنم

   public ActionResult GetProjects(int? pageNum)
        {
            pageNum = pageNum ?? 0;
            ViewBag.IsEndOfRecords = false;
            if (Request.IsAjaxRequest())
            {
                var students = GetRowsForPage(pageNum.Value);
                ViewBag.IsEndOfRecords = (students.Any()) && ((pageNum.Value * rowsPerPage) >= students.Last().Key);
                return PartialView("_ProjectRow", students);
            }
            else
            {
                LoadAllProjectsToSession();
                ViewBag.Students = GetRowsForPage(pageNum.Value);
                return View("Projects");
            }
        }

نمیدونم چطوری تو منو ها مقدار اینو عوض کنم

<script type="text/javascript">
        $(function () {
            $("div#loading").hide();

        });
        var moreRowsUrl = '/Home/GetProjects'

        $(window).scroll(scrollHandler);

        
    </script>

تشکر از راهنمایی های همیشگی و درستتون

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

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

ایمان مدائنی

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

  • پنجشنبه 12 اسفند 1395
  • 12:01

هر دو را به صورت پارشیال های جدا درست کنید

سپس با کلیک روی اجرا شده با Ajax میتونید پارشیال مورد نظر را لود کنید و ادامه دستورات که اجرا خواهند شد

کاربر سایت

محمد ملکی

عضویت از 1394/03/02

  • پنجشنبه 12 اسفند 1395
  • 18:05

آقای مدائنی چون من از اسکرول نامحدود استفاده میکنم گیج شدم

اصلا منظورتونو نفهمیدم

ببینید من یه View به نام Project با کد زیر دارم

<div class="breadcrumbs">
    <div class="container">
        <ul class="pull-right breadcrumb">

            <li> @Html.ActionLink("صفحه اصلی", "Index")</li>
            <li class="active">پروژه ها </li>
        </ul>
    </div>
</div>

<div class="container content">
    <div class="content-xs">
        <div id="filters-container" class="cbp-l-filters-text content-xs">
            <div data-filter="*" class="cbp-filter-item-active cbp-filter-item"> پروژه های انجام شده </div> |
            <div data-filter=".identity" class="cbp-filter-item"> پروژه های در حال اجرا </div>
            @*  <div data-filter=".web-design" class="cbp-filter-item"> Web Design </div> |
                <div data-filter=".graphic" class="cbp-filter-item"> Graphic </div> |
                <div data-filter=".logos" class="cbp-filter-item"> Logo </div>*@
        </div><!--/end Filters Container-->
    </div>
   
    <div id="testt">
        @Html.Partial("_ProjectRow", (ViewBag.Students as Dictionary<int, ProjeZivarAlat.Models.DomainModel.Project>))
    </div>
          
           

 

    </div>




@Html.Partial("_Loading")

@section Scripts{

    <script src="~/Scripts/infiniteScroll.js"></script>

    <script type="text/javascript">
        $(function () {
            $("div#loading").hide();

        });
        var moreRowsUrl = '/Home/GetProjects'

        $(window).scroll(scrollHandler);





    </script>
}

اونوقت توو کنترولر هم کدهام اینجوریه

 public ActionResult Projects()
        {
            return RedirectToAction("GetProjects");
        }

        public ActionResult GetProjects(int? pageNum)
        {
            pageNum = pageNum ?? 0;
            ViewBag.IsEndOfRecords = false;
            if (Request.IsAjaxRequest())
            {
                var students = GetRowsForPage(pageNum.Value);
                ViewBag.IsEndOfRecords = (students.Any()) && ((pageNum.Value * rowsPerPage) >= students.Last().Key);
                return PartialView("_ProjectRow", students);
            }
            else
            {
                LoadAllProjectsToSession();
                ViewBag.Students = GetRowsForPage(pageNum.Value);
                return View("Projects");
            }
        }



        public void LoadAllProjectsToSession()
        {
            ProjectRepository proje = new ProjectRepository();
            var Projects = proje.AllProject_Anjam();
            int custIndex = 1;

            
                Session["Projects"] = Projects.ToDictionary(x => custIndex++, x => x);

                ViewBag.TotalNumberCustomers = Projects.Count();
           
        }

        public Dictionary<int, Project> GetRowsForPage(int pageNum)
        {
            Dictionary<int, Project> students = (Session["Projects"] as Dictionary<int, Project>);

            int from = (pageNum * rowsPerPage);
            int to = from + rowsPerPage;

            return students
                .Where(x => x.Key > from && x.Key <= to)
                .OrderBy(x => x.Key)
                .ToDictionary(x => x.Key, x => x.Value);
        }

شما میگید دو تا پارشیال بزار خب توو پارشیال ها چی بزارم منظورم اینه طبق کدهای بالا میاد از url وارد اکشن GetProjectsمیشه و  از اونجا میره و همه رو میاره

خب من توو پارشیال چی بزارم

من خنگ نیستم ولی اینو اصلا متوجه نشدم

کاربر سایت

ایمان مدائنی

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

  • جمعه 13 اسفند 1395
  • 07:50

در کنار Url که وارد اکشن میشه یک مقدار هم ارسال کنید تا مشخص بشه قرار کدوم دسته رو نمایش بده

با همین Type میتونید به سادگی پیاده سازی کنید

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

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

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

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