3. ±Û¸ñ·Ï - List.aspx
ÆäÀÌÁö Ãß°¡/ÄÁÆ®·Ñ ¼³Á¤
À̹ø °Á¿¡¼± Áö³ °Á¿¡¼ ÀÛ¼ºÇß´ø ±Û ¾²±â ÆäÀÌÁö¿¡¼ µî·ÏÇÑ ±ÛÀ» ¸ñ·ÏÀ¸·Î º¸¿©ÁÙ, ±Û ¸ñ·Ï ÆäÀÌÁö¸¦ ¸¸µé¾îº¸°Ú½À´Ï´Ù. ÆäÀÌÁö À̸§Àº
List.aspx ÀÔ´Ï´Ù.
¼Ö·ç¼Ç Ž»ö±â, ÇØ´ç ÇÁ·ÎÁ§Æ®°¡ ¼±ÅÃµÈ »óÅ¿¡¼
ÆÄÀÏ ¸Þ´º¿¡¼ '»õ Ç׸ñ Ãß°¡'¸¦ ¼±ÅÃÇÕ´Ï´Ù. ȤÀº ÇØ´ç ÇÁ·ÎÁ§Æ®¸¦ ¿À¸¥ÂÊ Å¬¸¯ÇϽŠÈÄ Ãß°¡->»õÇ׸ñ Ãß°¡ ¸¦ ¼±ÅÃÇϼŵµ µË´Ï´Ù.
±×·³ '»õ Ç׸ñ Ãß°¡' âÀÌ ¶ß´Âµ¥¿ä, °Å±â¼ ÅÛÇø´¿¡¼ Web Form À» ¼±ÅÃÇϰí, ÆÄÀÏÀ̸§À» 'List.aspx'·Î ÀÔ·ÂÇÑ ÈÄ '¿±â'¸¦
Ŭ¸¯ÇÕ´Ï´Ù. ´ÙÀ½ ±×¸²°ú °°½À´Ï´Ù.

±×·³ ÇÁ·ÎÁ§Æ®¿¡ List.aspx°¡ Ãß°¡µË´Ï´Ù.
Ãß°¡µÈ List.aspx¸¦ ¿À¸¥ÂÊ Å¬¸¯Çؼ,
'½ÃÀÛ ÆäÀÌÁö·Î ¼³Á¤'À» ¼±ÅÃÇØ¼ ½ÃÀÛÆäÀÌÁö·Î ÇÕ´Ï´Ù. ( ¿À¸¥ÂÊ ±×¸² ÂüÁ¶ ) ±×·¸°Ô ÇÏÁö ¾ÊÀ¸¸é ½ÃÀÛ¹öư ´·¶À»¶§, ÇöÀçÀÇ ½ÃÀÛ ÆäÀÌÁöÀÎ
Write.aspx ºÎÅÍ ½ÃÀÛÇϱ⠶§¹®¿¡ Á» ±ÍÂú½À´Ï´Ù.
±×¸®°í ±Û¾²±â ÆäÀÌÁö(Write.aspx) ¶§¿Í ¸¶Âù°¡Áö·Î ÆäÀÌÁö ¹ÙÅÁ ¾Æ¹«°÷À̳ª ¿À¸¥ÂÊ Å¬¸¯Çؼ ¼Ó¼ºÀ» ¼±ÅÃ, ÆäÀÌÁö ·¹À̾ƿôÀ» FlowLayoutÀ¸·Î ¹Ù²ß´Ï´Ù.
À̰ÍÀº ´Ù¸¥ ¸ðµç ÆäÀÌÁö¿¡µµ ¸¶Âù°¡ÁöÀÔ´Ï´Ù.
±Û¾²±â ÆäÀÌÁö °æ¿ì¿Í ¸¶Âù°¡Áö·Î, ¿ì¼±Àº ÇÊ¿äÇÑ ÄÁÆ®·ÑµéÀ» ²ø¾î´Ù ³õ°í ½ÃÀÛÇØ º¸°Ú½À´Ï´Ù. ±Û ¸ñ·Ï ÆäÀÌÁöÀÌ´Ï, DB ·¹ÄÚµåµéÀ»
¸ñ·ÏÀ¸·Î Ç¥ÇöÇØÁÙ ÄÁÆ®·ÑÀÌ ÇÊ¿äÇϰڴµ¥¿ä, ±×¸¦ À§Çؼ± DataGrid, DataList, Repeater µîÀ» ¾µ¼ö ÀÖ½À´Ï´Ù. °Á¿¡¼´Â
DataGrid °¡ °¡Àå ¸¹Àº ±â´ÉÀ» Á¦°øÇϰí, ºñÁê¾óÇÏ°Ô ÀÛ¾÷ÇÒ¼ö ÀÖÀ¸´Ï DataGrid¸¦ ½áº¸°Ú½À´Ï´Ù.
±× ¿Ü¿¡µµ 'ÃÑ XX°³ÀÇ ±Û, XX/XXÆäÀÌÁö' °°Àº ÆäÀÌÁö ¹øÈ£ Ç¥½ÃÇÒ ºÎºÐµµ ÇÊ¿äÇϰí, ÆäÀÌÁö À̵¿ÇÏ´Â ºÎºÐµµ ÇÊ¿äÇϰí, ±Û¾²±â ¹öưµµ
ÇÊ¿äÇϰڽÀ´Ï´Ù. µµ±¸ »óÀÚ¸¦ ¿¾î, HTML ¶õÀÇ Table À» ÀÌ¿ëÇØ ·¹À̾ƿô ÀâÀ¸¸é¼, Web Forms¶õ¿¡¼ Label, HyperLink
3°³, DataGrid ¸¦ ²ø¾î´Ù³õ¾Æ ´ÙÀ½ ±×¸²Ã³·³ ¸¸µì´Ï´Ù.

°¡¿îµ¥ÀÇ Å×À̺í ÇüÅ·ΠÀÖ´Â °ÍÀÌ DataGrid ²ø¾î´Ù ³õÀº ¸ð½ÀÀÔ´Ï´Ù. ÄÁÆ®·ÑµéÀÇ ID, ¼Ó¼ºÀ» ´ÙÀ½Ã³·³ ¹Ù²ß´Ï´Ù.
¡¡
ÄÁÆ®·Ñ |
(ID) |
±×¿Ü ¼Ó¼º/¼³¸í |
Label |
lblRecordCount |
Text : (ºñ¿öµÓ´Ï´Ù) |
ù¹øÂ° HyperLink |
lnkPrevBtn |
Text : [ÀÌÀüÆäÀÌÁö] |
µÎ¹øÂ° HyperLink |
lnkNextBtn |
Text : [´ÙÀ½ÆäÀÌÁö] |
¼¼¹øÂ° HyperLink |
lnkWriteBtn |
Text : [±Û¾²±â]
NavigateUrl : Write.aspx |
DataGrid |
dgrdMainList |
(ÀÏ´Ü ¾ÆÀ̵𸸠¹Ù²ß´Ï´Ù) |
ù¹øÂ° Label Àº 'ÃÑ xx°³ÀÇ ±Û, xx/xx ÆäÀÌÁö' ¶ó°í, ÃÑ ±ÛÀÇ ¼ö¿Í ÇöÀç ÆäÀÌÁö ¹øÈ£¸¦ Ç¥½ÃÇÒ À§Ä¡ÀÔ´Ï´Ù. ù¹øÂ°, µÎ¹øÂ°
HyperLink ´Â ÀÌÀüÆäÀÌÁö/´ÙÀ½ÆäÀÌÁö·Î À̵¿Çϱâ À§ÇÑ °ÍÀ̰í¿ä, ¸¶Áö¸· HyperLink ´Â ±Û¾²±â ÆäÀÌÁö(Write.aspx)·Î À̵¿Çϱâ
À§ÇÑ °ÍÀÔ´Ï´Ù.
ÀÏ´ÜÀº ÀÌÀü/´ÙÀ½ À¸·Î À̵¿Çϵµ·Ï¸¸ ÇÏÁö¸¸, ´ÙÀ½¿¡ ÀÌÀü/´ÙÀ½ ´ë½Å ÆäÀÌÁö¹øÈ£·Î À̵¿ ÇÏ´Â ¸µÅ©( [<<][<] [1][2][3][4]
[>][>>] ÀÌ·± ½ÄÀ¸·Î ÆäÀÌÁö ¹øÈ£·Î À̵¿ÇÏ´Â ¸µÅ© )·Î ÇÏ´Â ¹æ¹ýµµ ´Ù·ç°Ú½À´Ï´Ù. ±×°Íµµ °°ÀÌ ´Ù·ç¸é ±¦È÷ º¹ÀâÇØÁú°Í °°¾Æ ÀÏ´Ü
°£´ÜÈ÷¸¸ ÇÕ´Ï´Ù. À̹ø °Á¿¡¼ Áß¿äÇѰÍÀº DataGrid ÀÌÁö, ÆäÀÌÁö¸µÅ©´Â ¾Æ´Ï´Ï±î¿ä.
DataGrid´Â ¼³Á¤ÇÒ °ÍÀÌ ¸¹Àºµ¥, Àá½ÃÈÄ ¼³¸íÇϰڽÀ´Ï´Ù.
ÀÚ·á °¡Á®¿À±â
¸ñ·ÏÀÌ Ç¥ÇöµÇ·Á¸é ÀڷḦ Å×ÀÌºí¿¡¼ °¡Á®¿Í¾ß °ÚÁÒ? ±×¸¦ À§Çؼ± ù¹øÂ°·Î ¿¬°á °´Ã¼ÀÎ SqlConnection ÇÊ¿äÇϰڽÀ´Ï´Ù. ±Û¾²±â ¶§¿Í
¸¶Âù°¡Áö·Î, µµ±¸ »óÀÚÀÇ 'µ¥ÀÌÅÍ' ¶õ¿¡¼ SqlConnectionÀ» ÆäÀÌÁö¿¡ ²ø¾î´Ù ³õ½À´Ï´Ù. ±×¸®°í ¼Ó¼º¶õ¿¡¼, ¿ì¼±Àº (Name)À»
dbConnectionÀ¸·Î ¹Ù²Ù°í¿ä, Dynamic Properties ¶õ È®Àå, ConnectionString ¶õÀÇ [...] ¹öưÀ» Ŭ¸¯,
'µ¿Àû ¼Ó¼º' â¿¡¼ '±¸¼º ÆÄÀÏÀÇ Å°¿¡ ¼Ó¼º ¸ÅÇÎ' üũ¹Ú½º¸¦ ¼±ÅÃÇÏ½Ã¸é ¹ØÀÇ ÅØ½ºÆ®¹Ú½º°¡ Ȱ¼ºÈµÇ°í
'dbConnection.ConnectionString' À̶ó ÀԷµǾî ÀÖÀ»°Ì´Ï´Ù.

Write.aspx¿¡¼µµ º¸¾Ò¾ú½À´Ï´Ù.
'È®ÀÎ'À» Ŭ¸¯Çϰí, ¹ØÀÇ 'µ¥ÀÌÅÍ'¶õÀÇ ConnectionString Ç׸ñ º¸½Ã¸é, ÀÔ·ÂÇÏÁö ¾Ê¾Ò´Âµ¥µµ ¿¬°á¹®ÀÚ¿ÀÌ µé¾î°¡ ÀÖÀ» °Ì´Ï´Ù.
Write.aspx ÀÛ¾÷ÇÒ¶§ Web.config ÆÄÀÏ¿¡ ÀúÀåÇß´ø, ±× Ű¿¡ ÇØ´çÇÏ´Â °ªÀ» °¡Á®¿Â °ÍÀÌÁÒ. À̰ÍÀÌ ¿¬°á ¹®ÀÚ¿À» Ű¿Í ¸ÅÇνÃŰ´Â
ÀÌÀ¯ÀÔ´Ï´Ù. Çѹø ÀÔ·ÂÇØ µÎ¸é ´ÙÀ½¹ø¿£ ÀÔ·ÂÇÒ Çʿ䰡 ¾ø°í¿ä, ÇÑ °÷¿¡ ÀúÀåµÇ´Ï °ü¸®Çϱ⵵ ½±½À´Ï´Ù.
±×¸®°í ÀڷḦ °¡Á®¿Ã °´Ã¼°¡ ÇÊ¿äÇϰڴµ¥¿ä, ÀڷḦ °¡Á®¿À±â À§ÇØ SqlCommand°´Ã¼¸¦ »ç¿ëÇØ¼ SqlDataReader·Î ÀÐÀ» ¼öµµ
ÀÖ½À´Ï´Ù¸¸, À̹ø¿£ SqlDataAdapter¸¦ ½áº¸°Ú½À´Ï´Ù. µµ±¸»óÀÚ 'µ¥ÀÌÅÍ' ¶õ¿¡ SqlDataAdapter ¸¦ ²ø¾î ÆäÀÌÁö ¾Æ¹«°÷³ª
³õ½À´Ï´Ù. ±×·³ ÆíÁý ÆäÀÌÁö ÇÏ´Ü¿¡ sqlDataAdapter1 À̶õ °´Ã¼°¡ »ý±â¸é¼ 'µ¥ÀÌÅÍ ¾î´ðÅÍ ±¸¼º ¸¶¹ý»ç'°¡ ½ÃÀ۵Ǵµ¥¿ä, Á÷Á¢ ¼Ó¼ºÀ»
ÀÔ·ÂÇÒ °ÍÀÌ´Ï 'Ãë¼Ò'¸¦ ´·¯ Ãë¼ÒÇÕ´Ï´Ù.
±×¸®°í ¼Ó¼ºÀ» ´ÙÀ½Ã³·³ ÆíÁýÇÕ´Ï´Ù.
- (Name) dbDataAdapterGetSequences
- DeleteCommand : (¾øÀ½) ( ÀÛÀº È»ìÇ¥ ´·¯ '(¾øÀ½)' ¼±ÅÃÇÏ½Ã¸é µË´Ï´Ù )
- InsertCommand : (¾øÀ½)
- UpdateCommand : (¾øÀ½)
- SelectCommand : [+] ´·¯ È®ÀåÇϽŠÈÄ, ´ÙÀ½À» ÀÔ·ÂÇÕ´Ï´Ù.
- Connection : dbConnection
- CommandText : select seq from cstVSBoard order by seq desc
¿À¸¥ÂÊ ±×¸²ÀÌ µ¥ÀÌÅͼ ¼Ó¼º ÆíÁýÇÑ ¸ð½ÀÀÔ´Ï´Ù.
¹æ±Ý ÀÛ¼ºÇÑ µ¥ÀÌÅͼÂÀº
°Ô½ÃÆÇ Å×ÀÌºí¿¡¼ seq Çʵ常 ÀüºÎ °¡Á®¿À±â À§ÇÑ °ÍÀÔ´Ï´Ù.
seq ´Â ÀÚµ¿ Áõ°¡Çü(identity)À¸·Î µÈ ÀϷùøÈ£·Î, ±ÛÀ» ±¸ºÐÇϱâ À§ÇÑ °ÍÀ̱⵵ Çϰí, ¿ª¼øÀ¸·Î Çϸé ÃÖ±Ù ±ÛºÎÅÍ ½ÃÀÛÇÏ´Â ¸ñ·Ï¿¡¼ÀÇ
±ÛÀÇ ¼ø¼À̱⵵ ÇÕ´Ï´Ù. ÀÌ °Ô½ÃÆÇ¿¡¼± seq Çʵ常 ¸ðµÎ °¡Á®¿Í¼, ±×Áß ÇØ´ç ÆäÀÌÁöÀÇ ±ÛÀ» ¾Ë¾Æ³»¼ ±× ±ÛÀÇ ·¹Äڵ带 ´Ù½Ã °¡Á®¿À´Â ¹æ½ÄÀ¸·Î
ÆäÀÌ¡ ÇÒ »ý°¢ÀÔ´Ï´Ù. ·ÎÁ÷Àº Àá½ÃÈÄ ¼³¸íµå¸®°Ú°í¿ä, À§ ó·³ ¼³Á¤ÇϽŠÈÄ¿£ ¼Ó¼º¶õ ¾Æ·¡ºÎºÐ¿¡¼ 'µ¥ÀÌÅÍ ¹Ì¸®º¸±â'¸¦ Ŭ¸¯ÇØ º¸¼¼¿ä. ¿À¸¥ÂÊ
±×¸² ÇÏ´Ü¿¡µµ ¸µÅ©°¡ º¸ÀÔ´Ï´Ù. ¡¡ |
 |

'µ¥ÀÌÅÍ ÁýÇÕ Ã¤¿ì±â' ¹öưÀ» ´·¯ °á°ú ¶õ¿¡ ÀÚ·á°¡ ³ª¿À¸é ¼º°øÀÔ´Ï´Ù. ±ÛÀ» Çϳª¸¸ ÀÔ·ÂÇß´Ù¸é À§ ±×¸²Ã³·³ 1 À̶õ ·¹ÄÚµå Çϳª¸¸ ³ª¿Ã°Ì´Ï´Ù.
ÀÌÁ¦ À§ Å×À̺í·Î ÇØ´ç ÆäÀÌÁöÀÇ seq ¹üÀ§¸¦ ¾Ë¾Æ³½ ÈÄ, ÇØ´ç ÆäÀÌÁö ·¹Äڵ带 ½ÇÁ¦·Î °¡Á®¿Ã ¸í·É °´Ã¼¸¦ ¼³Á¤Çغ¸°Ú½À´Ï´Ù. µµ±¸»óÀÚ
'µ¥ÀÌÅÍ'¶õ¿¡¼ SqlCommand¸¦ ²ø¾î ³õ°í, ´ÙÀ½Ã³·³ ¼Ó¼ºÀ» ¼³Á¤ÇÕ´Ï´Ù.
- (name) : dbCommandGetArticles
- Connection : dbConnection
- CommandText :
select seq,writer,email,title,readed, writeDate from cstVSBoard
where seq between @seqStart and @seqEnd
order by seq desc
- Paramters :
ParameterName |
SqlDbType |
@seqStart |
Int |
@seqEnd |
Int |
ÆäÀÌ¡ ¼Ò½º ÀÛ¼º ¹× Å×½ºÆ®
ÀÌÁ¦ Áö±Ý±îÁö ¼³Á¤ÇÑ DB°ü·Ã °´Ã¼¸¦ ÀÌ¿ëÇØ¼, ¿øÇÏ´Â ÆäÀÌÁöÀÇ ±ÛÀ» DataGrid¿¡ ¹ÙÀεùÇÒ ·ÎÁ÷À» ÀÛ¼ºÇÒ Â÷·ÊÀÔ´Ï´Ù.
°Ô½ÃÆÇ ¸ñ·Ï¿¡¼±, ¼ö¸¹Àº ±ÛÀ» ÀüºÎ ÇÑÆäÀÌÁö¿¡ º¸¿©ÁÙ¼ø ¾ø±â¶§¹®¿¡, º¸Åë 'ÆäÀÌ¡'À̶ó ºÎ¸£´Â UI¸¦ ½á¼ ¿©·¯ ÆäÀÌÁö¿¡ ³ª´²¼ º¸¿©ÁÖ°Ô
µË´Ï´Ù. ÆäÀÌ¡Àº, DataGrid¿¡¼ Áö¿øÇϱ⵵ Çϴµ¥¿ä, ¿©±â¼´Â ÆäÀÌ¡ÇÏ´Â ·ÎÁ÷À» Á÷Á¢ ÀÛ¼ºÇϰڽÀ´Ï´Ù.
DataGrid¿¡¼ Áö¿øÇÏ´Â ÆäÀÌ¡Àº ¸ðµç ·¹ÄÚµåÀÇ ÇÊ¿äÇÑ Çʵ带 °¡Á®¿Í¼, ±×Áß ÇØ´ç ÆäÀÌÁöÀÇ ·¹Äڵ常 º¸¿©ÁÖ´Â °ÍÀÔ´Ï´Ù. ±×·¡¼ ±ÛÀÌ ¼ö¸¸°³
µÇ¸é Á» ´À·ÁÁý´Ï´Ù. »ç½Ç ¾î´À ÆäÀÌÁö¸¦ º¸¿©ÁÖ±â À§Çؼ± ÇØ´ç ÆäÀÌÁöÀÇ ÀڷḸ ÀÖÀ¸¸é µÇ´Â °ÍÀε¥, ¸ðµç ·¹Äڵ带 °¡Á®¿Â´Ù´Â °Í ÀÚü°¡
ºñÈ¿À²ÀûÀÎ °ÍÀ̰ÚÁÒ.
±×·±µ¥ ¿øÇÏ´Â ÆäÀÌÁöÀÇ ·¹Äڵ常 °¡Á®¿À´Â °ÍÀÌ ±×¸® ½±Áö¸¸Àº ¾ÊÀº°Í °°½À´Ï´Ù. Áß°£¸¸ ²÷¾î °¡Á®¿À´Â °Íµµ ±×·¸°í, ±×·³¿¡µµ ÃÑ ·¹ÄÚµå °¹¼ö´Â
¾Ë¾Æ¾ß ¸î ÆäÀÌÁö±îÁö Á¸ÀçÇÏ´ÂÁö ¾Ë¼ö ÀÖ¾î¾ß ÇÕ´Ï´Ù.
¿©·¯ ·ÎÁ÷ÀÌ ÀÖ°Ú½À´Ï´Ù¸¸, ¿©±â¼´Â seq Çʵ常 ¸ðµÎ °¡Á®¿Í¼, ±×°ÍÀ¸·Î ±ÛÀÇ °¹¼ö¿Í, Çö ÆäÀÌÁöÀÇ seq ¹üÀ§¸¦ ¾Ë¾Æ³»°í, ±× ¹üÀ§¿¡ µû¶ó
´Ù½Ã select ¹®À» È£ÃâÇϵµ·Ï ÇØ¼ ÆäÀÌ¡ÇϰڽÀ´Ï´Ù. ·¹ÄÚµå Àüü¸¦ °¡Á®¿Â´Ù ÇØµµ, intÇüÀÇ ÇϳªÀÇ Çʵ常 °¡Á®¿À±â ¶§¹®¿¡ ¼Óµµ°¡
ºü¸¨´Ï´Ù. ºñ±³Àû °£´ÜÇÑ ·ÎÁ÷ÀÓ¿¡µµ DataGrid ÀÚü ÆäÀÌ¡ º¸´Ù ¿¹èÀÌ»ó »¡¶óÁú¼ö ÀÖ½À´Ï´Ù. ( À̺¸´Ù ´õºü¸¥ ·ÎÁ÷µµ Àִµ¥, ¼Ò½º°¡ Á»
º¹ÀâÇÏ°Ô µË´Ï´Ù. ´Ù¸¥ °Á¿¡¼ ´Ù·ç°Ú½À´Ï´Ù )
¼Ö·ç¼Ç Ž»ö±â¿¡¼ List.aspx¸¦ ¿À¸¥ÂÊ Å¬¸¯, 'Äڵ庸±â'¸¦ ¼±ÅÃÇØ¼ ÄÚµå·Î ÀüȯÇÕ´Ï´Ù. ¾Æ¸¶µµ Page_Load À̺¥Æ® ºÎºÐ¿¡ Ä¿¼°¡
°¡ÀÖÀ»ÅÙµ¥¿ä, ±× ÇÔ¼ö¸¦ ´ÙÀ½Ã³·³ ÀÛ¼ºÇÕ´Ï´Ù.
private void Page_Load(object sender, System.EventArgs e)
{
int recordCount,pageCount,page;
const int pageSize = 15; // ÇÑ ÆäÀÌÁöÀÇ ±ÛÀÇ °¹¼ö
// cstVSBoard¿¡¼ seq Çʵå Àüü¸¦ °¡Á®¿Í¼
// DataTableÀÎ dtSeq¿¡ ´ã½À´Ï´Ù.
System.Data.DataTable dtSeq=new DataTable();
dbConnection.Open();
dbDataAdapterGetSequences.Fill(dtSeq);
// dtSeq ÀÇ ÇàÀÇ ¼ö(Rows.count)·Î
// °Ô½ÃÆÇ ±ÛÀÇ ÃÑ °¹¼ö¸¦ ¾Ë¾Æ³À´Ï´Ù.
recordCount=dtSeq.Rows.Count;
if(recordCount==0)
{
pageCount=0;
page=1;
}
else
{
// ÃÑ ÆäÀÌÁö ¼ö¸¦ ¾Ë¾Æ³À´Ï´Ù.
pageCount=(int)(recordCount-1)/pageSize+1;
// Çö ÆäÀÌÁö ¹øÈ£¸¦ ¾Ë¾Æ³À´Ï´Ù.
try
{
page=int.Parse(Request.QueryString["p"]);
}
catch(Exception)
{
page = 1;
}
if(page<1) page=1;
if(page>pageCount) page=pageCount;
// ÇöÆäÀÌÁö¿¡ ÇØ´çÇÏ´Â seqÀÇ ¹üÀ§¸¦ ¾Ë¾Æ³À´Ï´Ù.
int recordPosStart = (page-1)*pageSize;
int recordPosEnd = (page)*pageSize-1;
if(recordPosEnd>=recordCount ) recordPosEnd=recordCount-1;
int seqEnd=(int)dtSeq.Rows[recordPosStart][0];
int seqStart=(int)dtSeq.Rows[recordPosEnd][0];
// ÇØ´ç ¹üÀ§ÀÇ ·¹Äڵ带 °¡Á®¿É´Ï´Ù.
dbCommandGetArticles.Parameters["@seqStart"].Value=seqStart;
dbCommandGetArticles.Parameters["@seqEnd"].Value=seqEnd;
// ·¹ÄÚµåµéÀ» DataGrid¿¡ ¹ÙÀεùÇÕ´Ï´Ù.
dgrdMainList.DataSource =
dbCommandGetArticles.ExecuteReader(CommandBehavior.CloseConnection);
dgrdMainList.DataBind();
}
dbConnection.Close();
lblRecordCount.Text =
String.Format("ÃÑ <b>{0}</b> °³ÀÇ ±Û, <b>{1}</b>/{2} ÆäÀÌÁö"
, recordCount, page, pageCount);
// ÀÌÀü ÆäÀÌÁö, ´ÙÀ½ÆäÀÌÁö ¸µÅ©¸¦ ¼³Á¤ÇÕ´Ï´Ù.
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;
}
¼Ò½º´Â ¸®¸¶Å©·Î °£´ÜÈ÷ ¼³¸íÇØµÎ¾ú½À´Ï´Ù. ¿©·¯ºÐµµ ³ª¸§´ë·Î ÆäÀÌ¡ ·ÎÁ÷À» ±¸ÇöÇØ º¸½Ã±â ¹Ù¶ø´Ï´Ù.ÀÌÁ¦ ¿ÏÀüÈ÷ ¿Ï¼ºµÈ °ÍÀº ¾Æ´Õ´Ï´Ù¸¸,
Å×½ºÆ®Çغ¼ ¼ö´Â ÀÖ½À´Ï´Ù. DataGrid¿¡´Â ÀÚµ¿À¸·Î Ä÷³À» ¸¸µå´Â ±â´ÉÀÌ ÀÖ¾î¼( AutoGenerateColumns=true ), ¾Æ¹«
¼³Á¤ ¾ÈÇØµµ ( ¿¹»Ú°Ô´Â ¾È³ª¿Íµµ ) ÀÚ·áÀÇ ³»¿ëÀº Ãâ·ÂµË´Ï´Ù. ½ÃÀÛ ¹öưÀ» ´·¯ Å×½ºÆ® ÇØº¸¼¼¿ä.

±Û ¿©·¯°³¸¦ Ãß°¡Çؼ ÆäÀÌ¡µµ Å×½ºÆ®Çغ¸¼¼¿ä. À§ ±×¸²Àº ·¹ÄÚµå 40°³ ³Ö¾î¼ Å×½ºÆ®ÇÑ °ÍÀÔ´Ï´Ù. ¾Æ·¡¿¡ [ÀÌÀüÆäÀÌÁö], [´ÙÀ½ÆäÀÌÁö] ¸µÅ©À¸·Î
ÀÌÀü/´ÙÀ½ ÆäÀÌÁö·Î À̵¿ÇÒ¼ö ÀÖ°í, [±Û¾²±â] ¹öưÀ¸·Î ±ÛÀ» Ãß°¡ÇÒ ¼ö ÀÖ½À´Ï´Ù. À§¿¡´Â 40°³ÀÇ ±ÛÀÌ ÀÖ°í, ÇöÀç 3°³ ÆäÀÌÁö Áß 1ÆäÀÌÁö¶ó°í
Ç¥½ÃµÇ¾îÀÖ½À´Ï´Ù.
DataGrid ÆíÁý
°ñ°ÝÀº °ÅÀÇ ¿Ï¼ºµÇ¾ú°í, ÀÌÁ¦ DataGrid¸¦ ÆíÁýÇØ¼ ¿øÇÏ´Â Çʵ常, Á»´õ ¿¹»Ú°Ô ³ª¿Àµµ·Ï ÇÏ´Â °ÍÀÌ ³²¾Ò½À´Ï´Ù. DataGrid¸¦ ÆíÁýÇØ
º¸°Ú½À´Ï´Ù.
¾à°£ µðÀÚÀÎ ÇØ³õ°í ½ÃÀÛÇÏÁÒ. µ¥ÀÌÅͱ׸®µå¸¦ ¿À¸¥ÂÊ ¹öư Ŭ¸¯, ¸Þ´º¿¡¼ 'ÀÚµ¿¼½Ä'À» ¼±ÅÃÇÕ´Ï´Ù. ±×·³ ´Ù¾çÇÑ ¼½ÄÀ» ¼±ÅÃÇÒ¼ö Àִµ¥¿ä,
Á¦°æ¿ì¿£ ±×Áß '±âº» 1'À» ¼±ÅÃÇϰڽÀ´Ï´Ù. ¿øÇϽô °ÍÀ» ¼±ÅÃÇØº¸¼¼¿ä.

±×·³ ±×¸®µå¿¡ »öÀÌ µé¾î°¡¸é¼ ¾à°£Àº µðÀÚÀÎµÈ »óŰ¡ µË´Ï´Ù. VS.NET¿¡¼ ÀÚµ¿À¸·Î ¼½ÄÀ» Á¤ÇØÁÖ´Â °ÍÀä, ³ªÁß¿¡ ¸¾¿¡ ¾Èµé¸é 'ÀÚµ¿
¼½Ä Á¦°Å'¸¦ ¼±ÅÃÇØ¼ Á¦°ÅÇÒ¼öµµ ÀÖ°í, HTML ¼Ò½º·Î Á÷Á¢ º¯°æÇϼŵµ µË´Ï´Ù.
±×¸®°í DataGrid ¼Ó¼º¶õ¿¡¼ ´ÙÀ½ ¼Ó¼ºÀ» º¯°æÇÕ´Ï´Ù.
- AutoGenerateColumns : false
- EnableViewState : false
- Width : 600
Áö±Ý±îÁö´Â ±×¸®µå°¡ ÀÚµ¿À¸·Î Ä÷³À» ¸¸µéµµ·Ï ÇßÁö¸¸, Ä÷³À» ÁöÁ¤Çؼ ¿øÇÏ´Â ¸ð¾çÀ¸·Î ³ª¿Àµµ·Ï Çϱâ À§ÇØ AutoGenerateColumns¸¦
false·Î ÁÖ¾ú½À´Ï´Ù. Width´Â ¿øÇÏ´Â Å©±â´ë·Î ÁÖ½Ã¸é µË´Ï´Ù.
±×¸®°í ÀÌ ÆäÀÌÁö¿¡¼± PostBack ¹öưÀ» »ç¿ëÇÏÁö ¾Ê±â ¶§¹®¿¡ ViewState¸¦ À¯ÁöÇÒ Çʿ䰡 ¾ø¾î EnableViewState¸¦
false·Î ÇÕ´Ï´Ù. true/false ·Î ¹Ù²ã°¡¸ç ½ÇÇàÇØ¼ ¼Ò½ºº¸±â ÇØº¸½Ã¸é ¾î¶² Â÷À̰¡ ÀÖ´ÂÁö È®ÀÎÇϽǼö ÀÖ½À´Ï´Ù. __VIEWSTATE
¶õ È÷µç Çʵå Å©±â°¡ ÆÅ ÁÝ´Ï´Ù.
AutoGenerateColumns¸¦ false·Î ÇßÀ¸´Ï, Ä÷³À» ÇϳªÇϳª Á¤ÇØÁÖ¾î¾ß °ÚÁÒ? ±×¸®µå¸¦ ¿À¸¥ÂÊ Å¬¸¯Çؼ ¸Þ´º¿¡¼ '¼Ó¼º ÀÛ¼º±â'¸¦
¼±ÅÃÇÕ´Ï´Ù. ±×·³ 'dgrdMainList ¼Ó¼º' À̶õ âÀÌ ¶ß´Âµ¥, °Å±â¼ ¿ÞÂÊ¿¡¼ '¿'À» ¼±ÅÃÇÕ´Ï´Ù.

±×¸®°í ±×¸²Ã³·³ '¹ÙÀεùµÈ ¿'À» ¼±ÅÃ, [>] ¹öưÀ¸·Î '¼±ÅÃÇÑ ¿'¶õ¿¡ Ãß°¡Çϰí, ¸Ó¸®±ÛÅØ½ºÆ®¸¦ '¹øÈ£', µ¥ÀÌÅÍ Çʵ带 'seq'¸¦
ÀÔ·ÂÇÕ´Ï´Ù. °°Àº ½ÄÀ¸·Î Á¦¸ñ, À̸§, ³¯Â¥, Á¶È¸ µîÀ» Ãß°¡ÇÕ´Ï´Ù. ´ÙÀ½°ú °°½À´Ï´Ù.
¡¡
¿ Çü½Ä |
¸Ó¸®±Û ÅØ½ºÆ® |
µ¥ÀÌÅÍ Çʵå |
µ¥ÀÌÅÍ Çü½Ä ÁöÁ¤ ½Ä |
¹ÙÀεùµÈ ¿ |
¹øÈ£ |
seq |
(ÀԷ¾ÈÇÔ) |
ÅÛÇø´ ¿ |
Á¦¸ñ |
(ÀԷ¾ÈÇÔ) |
(ÀԷ¾ÈÇÔ) |
ÅÛÇø´ ¿ |
À̸§ |
(ÀԷ¾ÈÇÔ) |
(ÀԷ¾ÈÇÔ) |
¹ÙÀεùµÈ ¿ |
³¯Â¥ |
writeDate |
{0:yyyy-MM-dd} |
¹ÙÀεùµÈ ¿ |
Á¶È¸ |
readed |
(ÀԷ¾ÈÇÔ) |
¹øÈ£, ³¯Â¥, Á¶È¸ ó·³ µ¥ÀÌÅÍ °ª ±×´ë·Î Ãâ·Â¸¸ ÇÏ¸é µÇ¸é ¹ÙÀεùµÈ ¿À» ¾µ¼ö ÀÖ½À´Ï´Ù. ±×¸®°í ÇÏÀÌÆÛ¸µÅ©¶ó¸é ÇÏÀÌÆÛ¸µÅ© ¿À» ¾µ¼ö ÀÖ¾î¼,
Á¦¸ñÀ̳ª À̸§À» ÇÏÀÌÆÛ¸µÅ© ¿·Î ÇÒ¼öµµ Àִµ¥¿ä, ¾à°£ÀÌ¶óµµ ·ÎÁ÷ÀÌ µé¾î°¡¾ß ÇÑ´Ù¸é ¹ÙÀεùµÈ ¿À̳ª ÇÏÀÌÆÛ¸µÅ© ¿À» ¾µ¼ö°¡ ¾ø¾î 'ÅÛÇø´ ¿'À»
½á¾ß ÇÕ´Ï´Ù. ÅÛÇø´ ¿ÀÇ °æ¿ì Ç¥½ÃÇÒ ³»¿ëÀ» Á÷Á¢ ÆíÁýÇØ¾ß ÇÕ´Ï´Ù. Àá½ÃÈÄ ÇϰԵ˴ϴÙ.
±×¸®°í ¿ÞÂÊÀÇ '¼½Ä'¶õÀ» ´·¯ ¼½ÄÀ» ÆíÁýÇÕ´Ï´Ù. µðÀÚÀΰú °ü·ÃµÈ ºÎºÐÀ̰ڴµ¥, »ç¿ë¹ýµµ ÀÍÈú°â ¾à°£¸¸ ÆíÁýÇØº¸°Ú½À´Ï´Ù.

À§ ±×¸² ó·³, ¿¿¡¼ ¿øÇÏ´Â Ç׸ñÀ» ¼±ÅÃÇØ¼ ÆíÁýÇÏ½Ã¸é µË´Ï´Ù. ¹øÈ£¶õ È®ÀåÇØ º¸´Ï ¸Ó¸®±Û, ¹Ù´Ú±Û, Ç׸ñ ¼¼°¡Áö°¡ Àִµ¥¿ä, ÀÌÁß ¸Ó¸®±Û,
Ç׸ñ µÑÀ» °°ÀÌ ÆíÁýÇÕ´Ï´Ù. ´ÙÀ½Ã³·³ Ç׸ñÀ» ÆíÁýÇÕ´Ï´Ù.
- ¹øÈ£ : (Ç׸ñ/¸Ó¸®±Û ¸ðµÎ) °¡¿îµ¥ ¸ÂÃã, '¼¿¿¡¼ ÅØ½ºÆ® ÁٹٲÞ' üũ ÇØÁ¦
- Á¦¸ñ : ( ±âº»°ª´ë·Î ³öµÓ´Ï´Ù )
- À̸§ : (Ç׸ñ/¸Ó¸®±Û ¸ðµÎ) °¡¿îµ¥ ¸ÂÃã, '¼¿¿¡¼ ÅØ½ºÆ® ÁٹٲÞ' üũ ÇØÁ¦
- ³¯Â¥ : (Ç׸ñ/¸Ó¸®±Û ¸ðµÎ) °¡¿îµ¥ ¸ÂÃã, '¼¿¿¡¼ ÅØ½ºÆ® ÁٹٲÞ' üũ ÇØÁ¦
- Á¶È¸ : (Ç׸ñ/¸Ó¸®±Û ¸ðµÎ) °¡¿îµ¥ ¸ÂÃã, '¼¿¿¡¼ ÅØ½ºÆ® ÁٹٲÞ' üũ ÇØÁ¦
Á¦¸ñÀ» Á¦¿ÜÇÑ ´Ù¸¥ ¸ðµç Ç׸ñµéÀ» °¡¿îµ¥ Á¤·ÄÇϰí, ÅØ½ºÆ® ÁٹٲÞ( <td> ÀÇ nowrap ¿¡ ÇØ´çµË´Ï´Ù )À» ÇÏÁö ¾Êµµ·Ï Çß½À´Ï´Ù. ÀÌ·¸°Ô
Çϸé Á¦¸ñÀ» ±æ°Ô ÀÔ·ÂÇßÀ» °æ¿ì¿¡µµ ´ëÃæ Á¤·ÄµË´Ï´Ù.
Á¦¸ñÀÌ Áٹٲ޵Ǵ °Å¾ß ¾î¿¼ö ¾øÁö¸¸, ³¯Â¥°¡ ÁÙ¹Ù²Þ µÇ°Å³ª Çϸé Å×À̺íÀÌ ¾û¸ÁÀÌ µÇ°Åµç¿ä. ÀÌ »óÅ¿¡¼ Á¦¸ñ¶õÀÇ ³Êºñ¸¦ 10000px ·Î ¾ÆÁÖ
Å©°Ô ÁÖ¸é, Á¦¸ñ¶õÀÌ ÃÖ´ëÈ, ´Ù¸¥ ¶õÀº ÃÖ¼ÒÈ µÇ¸é¼ ¾îÁö°£ÇÑ °æ¿ì¿¡µµ ´ëÃæ Á¤·ÄµÇ¾î ³ª¿À´Â(?) ·¹À̾ƿôÀÌ µË´Ï´Ù. ÀϺΠ°Ô½ÃÆÇÀÌ ±×·¯ÇÑ
½ÄÀ¸·Î Á¤·ÄÇÏ´õ±º¿ä. ¿©·¯ºÐµµ ¿©·¯ ¹æ½ÄÀ¸·Î ÇØº¸¼¼¿ä.
±×¸®°í, ¾Æ±î ¿ Áß¿¡ 'Á¦¸ñ'°ú 'À̸§' ¶õÀº ÅÛÇø´ ¿·Î ÇÏ°í ³»¿ëÀº ÀÔ·ÂÇÏÁö ¾Ê¾Ò¾ú½À´Ï´Ù. Á¦¸ñÀ̳ª À̸§Àº ¾à°£ÀÇ ·ÎÁ÷ÀÌ µé¾î°¡¾ß Çϱâ
¶§¹®¿¡ ÅÛÇø´¿·Î Çߴµ¥¿ä, ±× ³»¿ëÀ» ÀÔ·ÂÇÒ Â÷·ÊÀÔ´Ï´Ù.
ÅÛÇø´ ¿Àº DataGrid¸¦ ¿À¸¥ÂÊ Å¬¸¯, 'ÅÛÇø´ ÆíÁý' ¼±ÅÃÇØ¼ ÆíÁýÇÒ¼ö ÀÖ½À´Ï´Ù¸¸, °£´ÜÇÑ °ÍÀ̶ó ±×³É HTML ¸ðµå·Î ÀüÈ¯ÇØ¼
ÆíÁýÇϰڽÀ´Ï´Ù. HTML ¸ðµå·Î ÀüȯÇÑ ÈÄ ¼Ò½º¿¡¼ TemplateColumn À¸·Î µÈ Á¦¸ñ, À̸§ ¶õÀ» ã¾Æ ´ÙÀ½Ã³·³ ÀÔ·ÂÇÕ´Ï´Ù. ÆÄ¶õ»ö
ºÎºÐÀÌ ÀÔ·ÂÇÒ ºÎºÐÀÔ´Ï´Ù.
<asp:datagrid id="dgrdMainList" runat="server" ...(»ý·«)... >
...(»ý·«)...
<asp:TemplateColumn HeaderText="Á¦¸ñ">
<ItemTemplate>
<%# BindTitle(Container.DataItem) %>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="À̸§">
<HeaderStyle Wrap="False"></HeaderStyle>
<ItemStyle Wrap="False"></ItemStyle>
<ItemTemplate>
<%# BindWriter(Container.DataItem) %>
</ItemTemplate>
</asp:TemplateColumn>
...(»ý·«)...
</asp:datagrid>
¾à°£Àº ·ÎÁ÷ÀÌ ÇÊ¿äÇØ¼, BindTitle, BindWriter ¶ó´Â ¸Þ¼µå¸¦ Á¤ÀÇÇØ¼ ±× ¸Þ¼µå¸¦ È£ÃâÇϵµ·Ï ÇÏ·Á´Â °ÍÀÔ´Ï´Ù. ÄÚµå º¸±â·Î
Àüȯ( ¸Þ´º¿¡¼ º¸±â-> ÄÚµå, ȤÀº F7 ´©¸§ ) ÇØ¼ ¹æ±Ý ³ÖÀº BindTitle, BindWriter ¶ó´Â ¸Þ¼µå¸¦ Ŭ·¡½º¿¡ Ãß°¡ÇÕ´Ï´Ù.
´ÙÀ½ ¼Ò½º ÆÄ¶õ»ö ºÎºÐÀÔ´Ï´Ù.
public class List : System.Web.UI.Page
{
...(»ý·«)...
protected string BindWriter( Object item)
{
string writer = (string)DataBinder.Eval(item, "writer");
string email = (string)DataBinder.Eval(item, "email");
writer=Server.HtmlEncode(writer);
email=Server.HtmlEncode(email);
if(email!="")
writer=String.Format("<a href=\"mailto:{0}\">{1}</a>", email,writer);
return writer;
}
protected string BindTitle( Object item)
{
int seq = (int) DataBinder.Eval(item, "seq");
string title = Server.HtmlEncode((string)DataBinder.Eval(item, "title"));
return String.Format("<a href=\"View.aspx?n={0}\">{1}</a>", seq,title);
}
...(»ý·«)...
}
À̸§ÀÇ °æ¿ì, ¸ÞÀÏ ÁÖ¼Ò¸¦ ÀÔ·ÂÇßÀ¸¸é ¸µÅ©¸¦ °É°í, ÀÔ·Â ¾ÈÇßÀ¸¸é ¸µÅ©¾øÀÌ Ãâ·ÂÇÏ°Ô µË´Ï´Ù. Á¦¸ñ¶õÀº ¾ÆÁ÷Àº ¾È¸¸µé¾úÁö¸¸ ±ÛÀÇ ³»¿ëÀ» º¸¿©ÁÙ
View.aspx ¶ó´Â ÆäÀÌÁö¸¦ seq °ª°ú ÇÔ²² È£ÃâÇϵµ·Ï Á¦¸ñ¿¡ ¸µÅ©¸¦ °É¾ú½À´Ï´Ù.
Á¦¸ñ¶õÀÇ °æ¿ì ¸µÅ©¸¸ °É¸é µÇ±â¿¡ ÇÏÀÌÆÛ¸µÅ© ¿À» ½áµµ µË´Ï´Ù¸¸, »ç¿ëÀÚ°¡ HTML ű׸¦ ÀÔ·ÂÇϸé űװ¡ ½ÇÇàµÇ¾î ¹ö¸®±â ¶§¹®¿¡ ±×°ÍÀ»
¹æÁöÇϱâ À§ÇØ Server.HtmlEncode ¸Þ¼µå¸¦ ÀÌ¿ëÇØ¼ űװ¡ ½ÇÇà ¾ÈµÇµµ·Ï ÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. °£´ÜÇÑ ·ÎÁ÷À̶ó ÇØµµ, µ¥ÀÌÅÍ
±×¸®µåÀÇ ÇÏÀÌÆÛ¸µÅ© ¿ »ç¿ëÇϱâ´Â ¾î·Á¿ö ÅÛÇø´ ¿·Î Çß½À´Ï´Ù.
ÀÌó·³ ÇØ´ç ¿À» Ç¥ÇöÇÒ¶§ ·ÎÁ÷ÀÌ ÇÊ¿äÇϸé, ÅÛÇø´ ¿·Î Á¤ÀÇÇÑ ÈÄ ÇÊ¿äÇÏ´Ù¸é ¸Þ¼µå·Î Á¤ÀÇÇØ¼
<ItemTemplate></ItemTemplate> ¶õ¿¡ ³ÖÀ¸¸é µË´Ï´Ù.
¿Ï·á
ÀÌÁ¦ ¸ñ·Ï ÆäÀÌÁö´Â ¾î´À Á¤µµ ¿Ï¼ºµÈ ¼ÀÀÔ´Ï´Ù. ½ÃÀÛ¹öưÀ» ´·¯
½ÇÇàÇØº¸¼¼¿ä. Á¦°¡ ½ÇÇàÇÑ È¸éÀº ´ÙÀ½°ú °°½À´Ï´Ù.

ÀÌÀüÆäÀÌÁö/´ÙÀ½ÆäÀÌÁö ¸µÅ©·Î ÆäÀÌÁö¸¦ ¾Õ µÚ·Î À̵¿ÇÒ¼ö ÀÖ°í, ±Û¾²±â ¹öưÀ¸·Î ±ÛÀ» ÀÔ·ÂÇÒ ¼ö ÀÖ½À´Ï´Ù. ¸ÞÀÏÁÖ¼Ò¸¦ ÀÔ·ÂÇß´Ù¸é À̸§¿¡
¸µÅ©°¡ °É·Á ÀÖ½À´Ï´Ù.
Á¦¸ñÀ» Ŭ¸¯Çϸé, ¾ÆÁ÷Àº ¸¸µéÁö ¾Ê¾ÒÁö¸¸ ±ÛÀÇ ³»¿ëÀ» È®ÀÎÇÒ ±Ûº¸±â ÆäÀÌÁö, View.aspx ·Î À̵¿ÇÏ°Ô µË´Ï´Ù. ´ÙÀ½ °Á¿¡¼± ±Û º¸±â
ÆäÀÌÁö¸¦ ¸¸µé¾îº¸°Ú½À´Ï´Ù.
|