ASP.NET MVC 4 Razor 템 플 릿 간편 페이지 효과

1.데이터 없 는 제출
첫 번 째 단 계 는 PageIndex 라 는 빈 컨트롤 러 를 만 들 고 다음 과 같은 방법 을 사용자 정의 합 니 다.   

    public ActionResult PageIndex(string action, string controller, int currentPage, int pageCount)
    {
      //int count = db.Product.Count();
      ViewBag.PageCount = pageCount;//                    
      ViewBag.CurrentPage = currentPage;//                   
      ViewBag.action = action;
      ViewBag.controller = controller;
      return PartialView();
    }

네 개의 인자 입력: 
action:동작(페이지 를 나 눌 보기 동작,기본 값 은 Index);
controller:컨트롤 러;
currentPage:현재 페이지 수;
pageCount:데이터 총 페이지 수
두 번 째 단계:보기 추가(PageIndex)

@if (ViewBag.PageCount == null || ViewBag.PageCount == 0)
    {
      <span>  ,        !</span>
    }
    else
    {
      if (ViewBag.CurrentPage <= 10)
    {
    <span><a href="@Url.Action(ViewBag.action, ViewBag.controller, new { PageIndex = 1 }, null)">
      </a>|</span>
    }

  else
  {
  <a href="@Url.Action(ViewBag.action, ViewBag.controller, new { PageIndex = 1 }, null)">
      </a>

  <span><a href="@Url.Action(ViewBag.action, ViewBag.controller, new { PageIndex = ViewBag.CurrentPage - 10 }, null)">
    ...</a> </span>
 
  }
  for (int i = ViewBag.CurrentPage - 3; i < ViewBag.CurrentPage + 3; i++)
  {
    if (i <= 0)
    {
      continue;
    }
    if (i > ViewBag.PageCount)
    {
      break;
    }
  <span><a href="@Url.Action(ViewBag.action, ViewBag.controller, new { PageIndex = i }, null)">
      @i  </a>|</span>
  }
  if (ViewBag.CurrentPage > 1)
  {
  <span><a href="@Url.Action(ViewBag.action, ViewBag.controller, new { PageIndex = ViewBag.CurrentPage - 1 }, null)">
       </a>|</span>
  }
  if (ViewBag.PageCount > ViewBag.CurrentPage)
  {
  <span><a href="@Url.Action(ViewBag.action, ViewBag.controller, new { PageIndex = ViewBag.CurrentPage + 1 }, null)">
       </a></span>
  }
  if (ViewBag.CurrentPage == ViewBag.PageCount || ViewBag.CurrentPage >= ViewBag.PageCount - 10)
  {
  
  <a href="@Url.Action(ViewBag.action, ViewBag.controller, new { PageIndex = ViewBag.PageCount }, null)">
       </a>
  }
  else
  {
  <span><a href="@Url.Action(ViewBag.action, ViewBag.controller, new { PageIndex = ViewBag.CurrentPage + 10 }, null)">
    ...</a></span>
  <a href="@Url.Action(ViewBag.action, ViewBag.controller, new { PageIndex = ViewBag.PageCount }, null)">
       </a>
  }
  <span style="padding-left: 20px">    : @ViewBag.CurrentPage |   @ViewBag.PageCount  
  </span>
    }

세 번 째 단계:작 동 하 는 보기 의 컨트롤 러 수정

public ViewResult Index(int? pageIndex)
    {
      int pageInd = pageIndex.HasValue ? pageIndex.Value : 1;
       ViewBag.PageCount = (int)Math.Ceiling(result.Count() / 20.0);

      //    take,    20   
      return View(result.OrderBy(t => t.PID).Skip((pageInd - 1) * 20).Take(20));
    }

네 번 째 단계:페이지 호출(즉 마지막 단계)
@Html.Action("PageIndex", "Product", new { action = "Index", controller = "Log", pageCount = ViewBag.PageCount, currentPage = ViewBag.CurrentPage })
일반적으로 데 이 터 는 모두 변동 한 것 이다. 
2.데이터 제출
 첫 번 째 단계:PageIndex 라 는 빈 컨트롤 러 를 만 들 고 다음 과 같은 방법 을 사용자 정의 합 니 다. 

    public ActionResult PageIndexKey(int currentPage, int pageCount)
    {
      ViewBag.PageCount = pageCount;//                    
      ViewBag.CurrentPage = currentPage;//                   
      return PartialView();
    }

두 번 째 단계:분포 보기 만 들 기

 <script>
  $(function () {
    $("#pageingByForm a").click(function (event) {
      $("#pageIndex").val($(this).attr("pageIndex"));
      //$(this).parent("Form").submit();
      document.getElementsByTagName("Form").item(0).submit();
      event.preventDefault();
    });
  });
</script>
@Html.Hidden("pageIndex")
<div id="pageingByForm">
  @if (ViewBag.PageCount == null || ViewBag.PageCount == 0)
  {
    <span>      </span>
  }
  else
  {
    if (ViewBag.CurrentPage <= 10)
    {
    <span><a pageindex="1" href="#">  </a>|</span>
    }

    else
    {
    <span><a pageindex="1" href="#">  </a>|</span>

    <span><a pageIndex="@(ViewBag.CurrentPage - 10)" href="#">...</a>|</span>
    }
    for (int i = ViewBag.CurrentPage - 3; i < ViewBag.CurrentPage + 3; i++)
    {
      if (i <= 0)
      {
        continue;
      }
      if (i > ViewBag.PageCount)
      {
        break;
      }
    <span><a pageIndex="@i" href="#">  @i  </a>|</span>
    }
    if (ViewBag.CurrentPage >1)
    {
    <span><a pageIndex="@(ViewBag.CurrentPage - 1)" href="#">   </a>|</span>
    }
    if (ViewBag.PageCount > ViewBag.CurrentPage)
    {
    <span><a pageIndex="@(ViewBag.CurrentPage + 1)" href="#">   </a></span>
    }
    if (ViewBag.CurrentPage >= ViewBag.PageCount - 10)
    {
    }
    else
    {
    <span><a pageIndex="@(ViewBag.CurrentPage + 10)" href="#">...</a>|</span>
    <span><a pageIndex="@ViewBag.PageCount" href="#">   </a></span>
    }
    <span style="padding-left: 20px">    : @ViewBag.CurrentPage |   @ViewBag.PageCount  
    </span>
  }
</div>

세 번 째 단계:조작 보기 와 컨트롤 러 수정

public ViewResult Index(int? pageIndex ,string search)
  {
  int pageInd = pageIndex.HasValue ? pageIndex.Value : 1;
   ViewBag.PageCount = (int)Math.Ceiling(result.Count() / 20.0); 
  return View(result.OrderBy(t => t.PID).Skip((pageInd - 1) * 20).Take(20));
  }


보기(페이지 호출):
 @using (Html.BeginForm())

성별 에 따라 조회 결 과 를 얻다. 
성별:@Html.TextBox("섹스")
  
@Html.Action("PageIndexKey", "PageIndex", new { pageCount = ViewBag.PageCount, currentPage = ViewBag.CurrentPage })
 

Example: 

    //  ,  list    
    List<string> s = new List<string>(); 
      s.Add("  "); 
      ViewBag.PageCount = (int)Math.Ceiling(s.Count() / 20.0); 
      return View(s.Skip((pageInd - 1) * 20).Take(20)); 
    @Html.Action("PageIndex", "PageIndex", 
    new { action = "", controller = "", pageCount = ViewBag.PageCount, currentPage = ViewBag.CurrentPage })

이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기