2. DnnPagingHelperTagHelper 파일의 기본 제공 코드를 모두 지운 후 다음과 같이 긴 코드를 입력한다. 클래스 내에는 외부에 노출할 속성들과 실행할 때 태그를 만들어 낼 Process 메서드의 내용을 채운다.

    ▼  TagHelpers/DnnPagingHelperTagHelper.cs

    using Microsoft.AspNetCore.Razor.TagHelpers;
    using System;
    
    namespace DotNetNote.TagHelpers
    {
      /// <summary>
      /// 페이징 헬퍼(dnn-paging-helper)
      /// </summary>
      public class DnnPagingHelperTagHelper : TagHelper
      {
          /// <summary>
          /// 기본 리스트면 false, 검색 결과에 대한 페이징 리스트면 true
          /// </summary>
          public bool SearchMode { get; set; } = false;
          /// <summary>
          /// 검색할 필드: Name, Title, Content
          /// </summary>
          public string SearchField { get; set; }
          /// <summary>
          /// 검색할 내용
          /// </summary>
          public string SearchQuery { get; set; }
          
          /// <summary>
          /// 현재 보여줄 페이지 인덱스: 0, 1, 2
          /// </summary>
          public int PageIndex { get; set; } = 0;
          /// <summary>
          /// 총 페이지 개수
          /// </summary>
          public int PageCount { get; set; }
          /// <summary>
          /// 한 페이지에 보여줄 아티클 개수
          /// </summary>
          public int PageSize { get; set; } = 10;
          
          /// <summary>
          /// 페이징 헬퍼가 실행될 URL
          /// </summary>
          public string Url { get; set; }
          
          private int _RecordCount;
          /// <summary>
          /// 총 레코드 수
          /// </summary>
          public int RecordCount
          {
              get { return _RecordCount; }
              set
              {
                  _RecordCount = value;
                  PageCount = ((_RecordCount - 1) / PageSize) + 1; // 계산식
              }
          }
          
          public override void Process(
              TagHelperContext context, TagHelperOutput output)
          {
              output.TagName = “ul”;
              output.Attributes.Add(“class”, “pagination pagination-sm”);
              
              if (PageIndex == 0)
              {
                  PageIndex = 1;
              }
              
              int i = 0;
              
              string strPage = ””;
              
              
              if (PageIndex > 10)
              {
                  if (!SearchMode)
                  {
                      strPage += “<li><a href=\“” + Url + ”?Page=”
                          + Convert.ToString(((PageIndex - 1) / (int)10)  10)
                          + “\”>◀</a></li>“;
                  }
                  else
                  {
                      strPage += “<li><a href=\“” + Url + ”?Page=”
                          + Convert.ToString(((PageIndex - 1) / (int)10) 

    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.