본문 바로가기
IT-개발,DB

[개발] DataGrid 기본 페이저 모양 변경 방법

by SB리치퍼슨 2010. 11. 5.

출처 : HOONS 닷넷

원문 : http://www.hoonsbara.com/hoonsboard.aspx?table_name=asptip&board_idx=445396&page=9&keyword=&search=&boardmode=2

 

웹프로그래밍의 기초인 게시판을 작성할 때 ASP.NET 1.x의 DataGrid를 많이

사용하는데 편리하고 상용 그리드에 비해 가볍지만 기능이 부족한 점(셀 머징, 소팅, 스크롤)이

있습니다.

개인적으로 불만이었던 점 중의 하나가

게시판의 페이지 번호 부분이었는데

DataGrid 컨트롤이

'... 1 2 3 4 5 ...'과 같이 일반적인 게시판에 있는

'[처음][이전]1 2 3 4 5 [다음][마지막]'과

같은 모습을 제공해 주지 않고 있습니다.

이 부분을 커스터마이징 할 수 있는 방법은

DataGrid 컨트롤의 ItemCreated란 이벤트 핸들어에 아래 코드를 추가하면 됩니다.

게시판의 페이저 부분을 '◀ 1 2 [3] 4 5 ▶'로 바꿔줍니다.

 

            bool exist = false;

            if(e.Item.ItemType == ListItemType.Pager)

            {

                 TableCell Pager = (TableCell)e.Item.Controls[0];

                Pager.VerticalAlign = VerticalAlign.Middle;

                for(int n=0; n<Pager.Controls.Count; n+=2)

                {

                    try

                    {

                        Label l = (Label) Pager.Controls[n];

                        l.Text = "["+l.Text+"]";

                        l.CssClass = "plinkstyle";

                    }

                    catch

                    {

                        LinkButton h = (LinkButton) Pager.Controls[n];

                        if((h.Text == "...") && (!exist))

                        {

                            h.Text = "◀";

                            h.CssClass = "plinkstyle";

                        }

                        else if((h.Text == "...") && (exist))

                        {

                            h.Text = "▶";

                            h.CssClass = "plinkstyle";

                        }

                        else

                        {

                            exist = true;

                            h.CssClass = "plinkstyle";

                        }

                    }

                }

            }

 

반응형

댓글