7. ÆäÀÌÁö ¸µÅ© ±¸ÇöÇϱâ - PageNavigator.ascx
»ç¿ëÀÚ ÄÁÆ®·Ñ »ç¿ëÇϱâ
±Û ¸ñ·Ï ºÎºÐ¿¡, ÀÏ´ÜÀº °£´ÜÇÏ°Ô ÀÌÀü/´ÙÀ½ ÆäÀÌÁö·Î À̵¿Çϵµ·Ï¸¸ Çß¾ú½À´Ï´Ù. ±×·±µ¥ °Ô½ÃÆÇ¿¡¼± ÀϹÝÀûÀ¸·Î, ÆäÀÌÁö¹øÈ£·Î Á÷Á¢ À̵¿Çϵµ·Ï ÇÏ´Â
¸µÅ©µµ Á¦°øÇÕ´Ï´Ù.
±×¸²Àº ¸ñ·Ï ÆäÀÌÁö(List.aspx)¿¡, À̹ø °Á¿¡¼ ±¸ÇöÇÒ ÆäÀÌÁö ¸µÅ©¸¦ Ãß°¡ÇÑ ¸ð½ÀÀÔ´Ï´Ù. È»ìÇ¥ ºÎºÐÀÔ´Ï´Ù.
±×¸² ó·³, °Ô½ÃÆÇ¿¡¼± ÀϹÝÀûÀ¸·Î ÀÌÀüÆäÀÌÁö/´ÙÀ½ÆäÀÌÁö °¡´Â ¹öư°ú ÇÔ²² ÇØ´ç ÆäÀÌÁö ºÎ±Ù ÆäÀÌÁö(?) ·Î Á÷Á¢ °¡µµ·Ï ÇÏ´Â ÆäÀÌÁö ¸µÅ©µµ
Á¦°øÇÕ´Ï´Ù. À̹ø °Á¿¡¼ ±× ÆäÀÌÁö ¸µÅ©¸¦ ±¸ÇöÇÏ·Á ÇÕ´Ï´Ù. ±×¸²¿¡¼ º¸µí, ùÆäÀÌÁö·Î À̵¿ÇÏ´Â ¸µÅ©( [<<] ), ÀÌÀüÆäÀÌÁö
( [<] ), °¢ ÆäÀÌÁö·Î À̵¿ÇÏ´Â ¸µÅ©( [1][2][3][4]... ), ´ÙÀ½ÆäÀÌÁö ( [>] ), ³¡ÆäÀÌÁö(
[>>] ) µîÀÇ ¸µÅ©·Î ±¸¼ºµÇ¾îÀÖ½À´Ï´Ù.
±×·±µ¥ ÀÌ·¯ÇÑ ÆäÀÌÁö¸µÅ©´Â °Ô½ÃÆÇ¿¡¼µµ ¾²ÀÌÁö¸¸, ¹æ¸í·Ï, ÀÚ·á½Çµî ´Ù¸¥ ¾îÇø®ÄÉÀ̼ǿ¡¼µµ ¾²ÀÌ°Ô µË´Ï´Ù. ±×¸®°í ¿©·¯ °Ô½ÃÆÇÀ» °¢°¢ ´Ù¸¥
¼Ò½º·Î ÀÛµ¿½ÃÄѵµ ±×·¸°í¿ä. °ÅÀÇ ºñ½ÁÇÑ ·ÎÁ÷ÀÏ ÅÙµ¥, °¢ ¾îÇø®ÄÉÀÌ¼Ç º°·Î ÀÛ¼ºÇÏ°Ô µÈ´Ù¸é ³¶ºñÀÏµí ½Í½À´Ï´Ù.
±×·¡¼, ±× ÆäÀÌÁö ¸µÅ© ºÎºÐÀ» »ç¿ëÀÚ ÄÁÆ®·ÑÀ̶õ °ÍÀ¸·Î Á¤ÀÇÇØ¼, ÀÌ °Ô½ÃÆÇ »Ó ¾Æ´Ï¶ó ´Ù¸¥ ¾îÇø®ÄÉÀ̼ǿ¡¼µµ Àç »ç¿ë ÇÒ ¼ö ÀÖµµ·Ï ÇÏ·Á
ÇÕ´Ï´Ù. ¼Ò½º ÀÚüº¸´Ù´Â ¿©·¯ app ¿¡¼ ¾²Àϼö ÀÖ´Â ºÎºÐÀ» »ç¿ëÀÚ ÄÁÆ®·Ñ·Î Á¤ÀÇÇÏ°í »ç¿ëÇÏÀÚ´Â °ÍÀÌ À̹ø °ÁÂÀÇ ÁÖÁ¦¶ö ¼ö ÀÖ½À´Ï´Ù.
ÆäÀÌÁö Ãß°¡
¼Ö·ç¼Ç Ž»ö±â¿¡¼, ÇØ´ç ÇÁ·ÎÁ§Æ®¸¦ ¿À¸¥ÂÊ Å¬¸¯, ¸Þ´º¿¡¼ Ãß°¡ -> »õ Æú´õ¸¦ ¼±ÅÃÇØ¼ Æú´õ¸¦ ¸¸µì´Ï´Ù. Æú´õÀÇ À̸§Àº
UserControl ·Î ÁÝ´Ï´Ù. ±×¸®°í ±× Æú´õ¿¡¼ ¿À¸¥ÂÊŬ¸¯, Ãß°¡-> À¥ »ç¿ëÀÚ Á¤ÀÇ ÄÁÆ®·Ñ Ãß°¡ ¸¦ ¼±ÅÃÇϰí À̸§¶õ¿¡
PageNavigator.ascx ¶ó°í ÀÔ·ÂÇØ¼ Ãß°¡ÇÕ´Ï´Ù.
À¥ Æû ÆäÀÌÁö Ãß°¡ÇßÀ»¶§ ó·³ ºó ÆäÀÌÁö°¡ º¸Àϰ̴ϴÙ. ±× »óÅ¿¡¼ HTML ¸ðµå·Î ÀüȯÇϰí, ÇÑÁÙ¸¸ ÀÔ·ÂÇÕ´Ï´Ù. ´ÙÀ½ ÆÄ¶õ»ö ºÎºÐÀÔ´Ï´Ù.
<%@ Control Language="c#" ...(»ý·«) ... %>
<%# PageLink %>
PageLink ¶ó´Â ¼Ó¼º¸¸ ¹ÙÀεùÇϵµ·Ï ÇØ³õ¾Ò½À´Ï´Ù. ³ª¸ÓÁö´Â Ŭ·¡½º·Î Á¤ÀÇÇØ¼, ¸î°¡Áö ¼Ó¼º°ªÀ» ¼³Á¤ÇÏ¸é ¾Ë¾Æ¼
[<<][<][1][2][3][>][>>] ÇüÅÂÀÇ ÆäÀÌÁö ¸µÅ©¸¦ Ãâ·ÂÇϵµ·Ï ÇÒ »ý°¢ÀÔ´Ï´Ù.
¼Ò½º ÀÔ·Â
ÀÌÁ¦, ¼Ò½º¸¦ ÀÔ·ÂÇÕ´Ï´Ù. ¼Ò½ºº¸±â·Î Àüȯ( F7 ) ÇØ¼, ´ÙÀ½Ã³·³ ¼Ò½º¸¦ ÀÔ·ÂÇÕ´Ï´Ù. Page_Load À̺¥Æ®µî¿¡ Äڵ带 Ãß°¡ÇÒ ÇÊ¿ä´Â
¾ø°í¿ä, ¿©·¯ ¼Ó¼ºµé, ¸Þ¼µåµéÀ» Ãß°¡ÇÕ´Ï´Ù. ÆÄ¶õ»ö ºÎºÐÀÔ´Ï´Ù.
...(»ý·«)...
public class PageNavigator : System.Web.UI.UserControl
{
public int PageCount=1;
public int CurrentPage=1;
public string txtStart = "[<<]";
public string txtPrev = "[<]";
public string txtNext = "[>]";
public string txtEnd = "[>>]";
public string Action = "notsetted.aspx?p={0}";
private string makeLink(string linkStr, int page, string title)
{
return String.Format( "<a href=\"{0}\" title=\"{1}\">{2}</a>"
, String.Format( Action, page )
, title
, linkStr );
}
protected string PageLink
{
get
{
int pageStart;
int pageEnd;
string str = "";
pageStart=CurrentPage-4;
if(pageStart<1)
pageStart=1;
pageEnd=pageStart+8;
if(pageEnd>=PageCount)
pageEnd=PageCount;
pageStart=pageEnd-8;
if(pageStart<1)
pageStart=1;
if(CurrentPage>1)
{
str=makeLink(txtStart,1,"ù ÆäÀÌÁö")
+ " "+ makeLink(txtPrev,CurrentPage-1,"ÀÌÀü ÆäÀÌÁö");
}
else
{
str=txtStart +" "+ txtPrev;
}
str+=" ";
for( int i=pageStart;i<=pageEnd;i++)
{
if( i==CurrentPage )
str+="<b>["+i+"]</b> ";
else
str+=makeLink( "["+i+"]",i,i+" ÆäÀÌÁö" )+" ";
}
if(CurrentPage<PageCount)
{
str += makeLink(txtNext,CurrentPage+1,"´ÙÀ½ ÆäÀÌÁö")
+ " "+ makeLink(txtEnd,PageCount,"³¡ ÆäÀÌÁö");
}
else
{
str+=txtNext +" "+ txtEnd;
}
return str;
}
}
...(»ý·«)...
}
...(»ý·«)...
List.aspx ¿¡ »ç¿ëÀÚ ÄÁÆ®·Ñ Ãß°¡/Å×½ºÆ®
ÀÌÁ¦ ¹æ±Ý Á¤ÀÇÇÑ ÄÁÆ®·ÑÀ» List.aspx ¿¡ ³ÖÀ» Â÷·ÊÀÔ´Ï´Ù. List.aspx ¸¦ ¿¾î¼, [ÀÌÀüÆäÀÌÁö] [´ÙÀ½ÆäÀÌÁö]¶ó°í Ç¥½ÃµÇ¾ú´ø,
id °¡ lnkPrevBtn, lnkNextBtn À̾ú´ø HyperLink µÎ°³¸¦ »èÁ¦ÇÕ´Ï´Ù. »èÁ¦ÇÑ ÈÄ, ¼Ö·ç¼Ç Ž»ö±â¿¡¼
PageNavigator.ascx ¸¦ µå·¡±×-µå·Ó ÇØ¼ ±× À§Ä¡¿¡ ÄÁÆ®·ÑÀ» Ãß°¡ÇÕ´Ï´Ù. ±×·¯¸é UserControl -
PageNavigator1 À̶õ ÄÁÆ®·ÑÀÌ Ãß°¡µÉÅÙµ¥¿ä, ±× ÄÁÆ® ¼Ó¼º¶õÀÇ (id)¸¦ myPageNavigator¶ó°í ¹Ù²ß´Ï´Ù.
Á÷Á¢ Ãß°¡ÇϽ÷Á¸é, HTML º¸±â ¸ðµå¿¡¼, ÆäÀÌÁö ¸Ç ùÁÙ°ú, Áß°£ÀÇ ÇØ´ç À§Ä¡¿¡ ´ÙÀ½ ÆÄ¶õ»ö ºÎºÐÀ» ³ÖÀ¸½Ã¸é µË´Ï´Ù.
<%@ Register TagPrefix="Me" TagName="PageNavigator"
Src="UserControl/PageNavigator.ascx" %>
<%@ Page language="c#" ...(»ý·«)... %>
...(»ý·«)...
<TABLE id="Table1" cellSpacing="1" cellPadding="1" width="600" border="1">
<TR>
<TD><Me:PageNaviagator id="myPageNavigator" runat="server" /></TD>
<TD align="right">...(»ý·«)...</TD>
</TR>
</TABLE>
...(»ý·«)...
»ç¿ëÀÚ ÄÁÆ®·ÑÀº, ¼Ò½ºµµ aspx ÆäÀÌÁö¿Í °ÅÀÇ °°°í, ¸¸µç ÈÄ¿£ À§¿¡ ¼³¸íÇÑ °Íó·³ ¸¶¿ì½º·Î µå·¡±×-µå·Ó Çϰųª, <%@
Register... %> Áö½ÃÀÚ¸¦ ¾²°í ¿øÇÏ´Â °÷¿¡ ű׸¦ ³ÖÀ¸¸é µÇ±â ¶§¹®¿¡ »ç¿ëÇϱ⠽±½À´Ï´Ù.
ÀÌÁ¦ ÄÚµå º¸±â·Î ÀüÈ¯ÇØ¼(List.aspx.cs) ¹æ±Ý Ãß°¡ÇÑ ÄÁÆ®·Ñ( myPageNavigator )¸¦ List Ŭ·¡½º¿¡ Ãß°¡ÇÕ´Ï´Ù. ´Ù¸¥
ÄÁÆ®·ÑÀº VS.NETÀÌ ¾Ë¾Æ¼ Ãß°¡ÇØ ÁÖÁö¸¸, »ç¿ëÀÚ ÄÁÆ®·ÑÀº »ç¿ëÀÚ°¡ Á÷Á¢ Ãß°¡ÇØ¾ß ÇÕ´Ï´Ù. ´ÙÀ½ ÆÄ¶õ »ö ºÎºÐÀÔ´Ï´Ù.
public class List : System.Web.UI.Page
{
protected System.Web.UI.WebControls.HyperLink lnkWrite;
protected System.Web.UI.WebControls.Label lblRecordCount;
...(»ý·«)...
protected MessageBoard.UserControl.PageNavigator myPageNavigator;
protected string BindWriter( Object item )
{
...(»ý·«)...
Page_Load À̺¥Æ®ÀÇ ¸¶Áö¸· ºÎºÐ, ÀÌÀü ´ÙÀ½ÆäÀÌÁö ºÎºÐÀ» Áö¿ì°Å³ª ¸®¸¶Å©Ã³¸®Çϰí, ¹æ±Ý Ãß°¡ÇÑ »ç¿ëÀÚ ÄÁÆ®·ÑÀ» »ç¿ëÇϵµ·Ï °íĨ´Ï´Ù.
´ÙÀ½ ¼Ò½ºÀÇ ÆÄ¶õ»ö ºÎºÐÀÔ´Ï´Ù.
private void Page_Load(object sender, System.EventArgs e)
{
...(»ý·«)...
// ´ÙÀ½ ºÎºÐÀ» ¸®¸¶Å© ÇÕ´Ï´Ù
/*
// ÀÌÀü ÆäÀÌÁö, ´ÙÀ½ÆäÀÌÁö¸¦ ¼³Á¤ÇÕ´Ï´Ù.
lnkPrevBtn.NavigateUrl="List.aspx?p="+(page-1);
lnkNextBtn.NavigateUrl="List.aspx?p="+(page+1);
if(page<=1)
lnkPrevBtn.Visible=false;
if(page>=pageCount)
lnkNextBtn.Visible=false;
*/
// ´ÙÀ½ ³×ÁÙÀ» Ãß°¡ÇÕ´Ï´Ù.
myPageNavigator.PageCount = pageCount;
myPageNavigator.CurrentPage = page;
myPageNavigator.Action = "list.aspx?p={0}";
myPageNavigator.DataBind();
}
¼Ò½º¿¡¼± PageNavigator ÀνºÅϽº¿¡ ÆäÀÌÁö °¹¼ö(PageCount), ÇöÀç ÆäÀÌÁö(CurrentPage), ¸µÅ©(Action) ¸¦
¼³Á¤Çϰí DataBind() ¸¦ È£ÃâÇϰí ÀÖ½À´Ï´Ù. ¹æ¸í·Ï °°Àº ´Ù¸¥ AppÀÇ °æ¿ì¿¡µµ °°Àº ¹æ½ÄÀ¸·Î Ãß°¡Çؼ »ç¿ëÇÏ¸é µÉ°Ì´Ï´Ù.¸¸¾à
[<<][<][>][>>] ¹öưÀÇ ¸ð¾çÀ» ¹Ù²Ù°í ½Í´Ù¸é, PageNavigator ű׸¦ ´ÙÀ½°ú °°Àº ¹æ½ÄÀ¸·Î
¼³Á¤ÇÏ½Ã¸é µÉ°Ì´Ï´Ù.
<Me:PageNaviagator id="myPageNavigator" runat="server"
txtStart="<img src='b_start.gif' border=0 align=absmiddle>"
txtEnd="<img src='b_end.gif' border=0 align=absmiddle>"
txtPrev="<img src='b_prev.gif' border=0 align=absmiddle>"
txtNext="<img src='b_next.gif' border=0 align=absmiddle>"
/>
txtStart, txtEnd, txtPrev, txtNext µîÀÇ ¾îÆ®¸®ºäÆ®¿¡ ¿øÇÏ´Â ³»¿ëÀ» ³ÖÀ¸½Ã¸é µË´Ï´Ù. À̹ÌÁö¶ó¸é
<img> ű׸¦ ³ÖÀ¸½Ã¸é µÇ°ÚÁÒ.
|