티스토리 뷰

💼 정보 ver1.0

페이지 링크 만들기

James Wetzel 2013. 6. 8. 15:52

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;


using System.Web.Mvc;

using System.Text;


namespace EmptyMvcApplication.HtmlHelpers

{

    public static class PagingHelpers

    {

        public static string PageLinks(this HtmlHelper html, int currentPage, int totalPage, Func<int, string> pageUrl)

        {

            StringBuilder result = new StringBuilder();

            for (int i = 1; i <= totalPage; i++ )

            {

                TagBuilder tag = new TagBuilder("a");

                tag.MergeAttribute("href", pageUrl(i));

                tag.InnerHtml = i.ToString();


                if(i == currentPage)

                {

                    tag.AddCssClass("selected");

                }


                result.AppendLine(tag.ToString());

            }


            return result.ToString();

        }

    }

}


Controller

        public ViewResult Zebra(int? page)

        {

            List<MountainInfo> mountain = new List<MountainInfo>();

            mountain.Add(new MountainInfo { No = 1, Name = "한라산", HeightinMeters = 123456 });

            mountain.Add(new MountainInfo { No = 2, Name = "백두산", HeightinMeters = 789456 });

            mountain.Add(new MountainInfo { No = 3, Name = "태백산", HeightinMeters = 789456 });

            mountain.Add(new MountainInfo { No = 4, Name = "청계산", HeightinMeters = 789456 });


            ViewData["currentPage"] = page ?? 1;

            ViewData["totalPage"] = (int)Math.Ceiling(1.0 * 20 / 5);



            return View(mountain);

        }


View

<%@ Import Namespace="EmptyMvcApplication.HtmlHelpers" %>

page: <%= Html.PageLinks((int)ViewData["currentPage"], (int)ViewData["totalPage"], i => Url.Action("Zebra", new { page = i }))%>

반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함