티스토리 뷰

💼 정보 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/05   »
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 31
글 보관함