lecture Home > ASP.NET > Taeyo's ASP.NET

Taeyo's ASP.NET

   °­Á ÃÖÃÊ ÀÛ¼ºÀÏ : 2003³â 04¿ù 15ÀÏ
   °­Á ÃÖÁ¾ ¼öÁ¤ÀÏ : 2003³â 04¿ù 30ÀÏ

   °­Á ÀÐÀ½ ¼ö : ȸ

   ÀÛ¼ºÀÚ : Taeyo(±è Å¿µ)
   ÆíÁýÀÚ : Taeyo(±è Å¿µ)

   °­Á Á¦¸ñ : Page_PreRender À̺¥Æ®ÀÇ »ç¿ë¹æ¾È

°­Á Àü Å¿ÀÀÇ Àâ´ã>

¾Æ.. Àú´Â Å¿ÀÀÔ´Ï´Ù. ^^; ¼³¸¶ ±î¸ÔÀ¸½Å °ÍÀº ¾Æ´Ï°ÚÁÒ? ÇÏÇÏÇÏ


ÀÌ °­Á´ ¿©·¯ºÐÀÌ ±âº»ÀûÀÎ ASP.NETÀÇ »ç¿ë¹ýÀ» ¾î´ÀÁ¤µµ °øºÎÇß´Ù´Â °¡Á¤¿¡¼­ Ãâ¹ßÇϵµ·Ï ÇÒ¶ø´Ï´Ù. ƯÈ÷³ª, Taeyo's ASP.NET v1.0 ¶ó´Â 2003³â 2¿ù¿¡ ¿µÁøÃâÆÇ»ç(+Àκ극ÀÎ ÇÁ·¹½º)¿¡¼­ ³ª¿Â º£½ºÆ®¼¿·¯¸¦ ÅëÇØ¼­ ASP.NET À» °øºÎÇÏ¼Ì´Ù¸é ´õ´õ¿í ÀÌ °­Á°¡ µµ¿òÀÌ µÉ °Ì´Ï´Ù. ^^; 

¾Æ~ ³×!! Àº±ÙÇÑ Ã¥ ±¤°í´Â À̸¸Å­¸¸ Çϱ¸¿ä. °­Á¸¦ ÁøÇàÇØ º¸µµ·Ï ÇϰڽÀ´Ï´Ù. ^^;

À̹ø °­Á´ ¿©·¯ºÐÀÌ È¤ Àº±Ù½½Â½ Áö³ªÃÆÀ»Áöµµ ¸ð¸£´Â À¥ Æû PageÀÇ PreRender ¶ó´Â À̺¥Æ®ÀÇ È¿°úÀûÀÎ »ç¿ë¹æ¹ý¿¡ ´ëÇÑ À̾߱âÀÔ´Ï´Ù. ¿Ü±¹ WroxÀÇ ¼­Àû¿¡¼­´Â ÀÌ ºÎºÐÀÌ Performance(¼º´É)°ú °ü°èÇØ¼­ ¹«°ÔÀÖ°Ô ´Ù·ç°í Àֱ⵵ Çѵ¥¿ä. ÀÌ PreRender À̺¥Æ®¸¦ ÀûÀýÈ÷ »ç¿ëÇÑ´Ù¸é ¿©·¯ºÐÀº ÄÚµåÀÇ ¹Ýº¹À» »ó´çÈ÷ ÁÙÀÏ ¼ö ÀÖÀ» »Ó ¾Æ´Ï¶ó, ÀüüÀûÀÎ ÄÚµåÀÇ ±¸¼ºµµ ¸Å¿ì ±ò²ûÇÏ°Ô ÀâÀ¸½Ç ¼ö ÀÖÀ» °Ì´Ï´Ù.

µµ´ëü Page_PreRender À̺¥Æ®°¡ ¾î¶² Ưº°ÇÑ ±â´ÉÀ» Á¦°øÇϱ⿡ ÃʹݺÎÅÍ ±×·¸°Ô ¸¶±¸ °úÀåÀ» ½ñ¾Æº×´À³Ä ÇÏ½Ç Áö ¸ð¸£°Ú³×¿ä. ^^; ÀÏ´Ü Çѹø µÎ°íº¼±î¿ä?

ÀÚ. ¸ÕÀú, º»°ÝÀûÀÎ À̾߱⸦ ½ÃÀÛÇϱâ Àü¿¡ ¿©·¯ºÐ°ú ÇÔ²², À¥ Æû(WebForm)ÀÇ ±âº»ÀûÀÎ À̺¥Æ® ó¸® ¼ø¼­¸¦ Çѹø »ìÆìº¸µµ·Ï ÇϰڽÀ´Ï´Ù. Å©°Ô º¸¾ÒÀ» ¶§, À¥ Æû ÆäÀÌÁöÀÇ À̺¥Æ®´Â ´ÙÀ½°ú °°ÀÌ ºÐ·ùÇÒ ¼ö ÀÖ½À´Ï´Ù. (ÀÌ ³»¿ëÀº Taeyo's ASP.NET Ã¥ÀÇ 185, 372 ÆäÀÌÁö¸¦ Âü°íÇϽø鼭 º¸¸é ´õ¿í ÁÁ½À´Ï´Ù -_-;;)

À̺¥Æ® ¼³¸í
Page_Init °¡Àå ¸ÕÀú ¹ß»ýÇÏ´Â À̺¥Æ®À̸ç, ÀÌ À̺¥Æ® µ¿¾È¿¡ ÄÁÆ®·ÑµéÀÇ °ªÀ» ÃʱâÈ­Çϰųª, À̺¥Æ®µéÀ» ¸ÅÇÎ(¿¬°á)ÇÒ ¼ö ÀÖ´Ù.
Page_Load ÆäÀÌÁö°¡ ½ÇÁúÀûÀ¸·Î ·ÎµåµÇ´Â ½ÃÁ¡¿¡ ¹ß»ýÇÏ´Â À̺¥Æ®ÀÌ´Ù. ÀÌ À̺¥Æ® µ¿¾È¿¡ ASP.NET ÆäÀÌÁö¸¦ ¸¸µé¸ç, À̺¥Æ®¿¡ ÀÀ´äÇÏ´Â ÀÛ¾÷µéÀ» ¼öÇàÇÒ ¼ö ÀÖ´Ù. ÀÌ À̺¥Æ®°¡ ¹ß»ýÇϱâ Àü¿¡ ViewState¸¦ »ç¿ëÇÏ¿© ¼­¹ö ÄÁÆ®·ÑµéÀÇ »óŰ¡ º¹¿øµÈ´Ù. ¶ÇÇÑ, ÀÌ À̺¥Æ® µ¿¾È¿¡ IsPostBack ¼Ó¼ºÀ» »ç¿ëÇÏ¿© ÆäÀÌÁö°¡ óÀ½ ·ÎµåµÇ´Â °ÍÀÎÁö Æ÷½ºÆ®¹é ÁßÀÎÁö¸¦ ¾Ë¾Æ³¾ ¼ö ÀÖÀ¸¸ç ±×¿¡ µû¶ó ÀûÀýÇÑ ÀÛ¾÷À» ¼öÇàÇÒ ¼ö ÀÖ´Ù. ÁÖ·Î, ÆäÀÌÁöÀÇ Ã¹ ·Îµå ½Ã¿¡ µ¥ÀÌÅÍ ¹ÙÀεù ÀÛ¾÷À» ¼öÇàÇÑ´Ù.
Page_DataBind ÀÌ´Â ÆäÀÌÁö¿¡¼­ DataBind ¸Þ¼­µå°¡ È£ÃâµÉ ¶§ ¹ß»ýÇÏ´Â À̺¥Æ®ÀÌ´Ù.
Page_PreRender ÀÌ À̺¥Æ®´Â ViewState »óŰ¡ ÀúÀåµÇ±â Àü, ÄÁÆ®·ÑÀÌ ·»´õ¸µµÇ±â ¹Ù·Î Á÷Àü¿¡ ¹ß»ýÇÏ´Â À̺¥Æ®ÀÌ´Ù. ÀÌ À̺¥Æ®¿¡ Äڵ带 ÀÛ¼ºÇÏ´Â °æ¿ì´Â µå¹® ÆíÀÌÁö¸¸, ÀÌ À̺¥Æ®¸¦ »ç¿ëÇÏ¿© ¸¶Áö¸· ¼¼ºÎ ÀÛ¾÷À» ¼öÇàÇÒ ¼ö ÀÖ´Ù. (ÀÌ ºÎºÐÀÌ Áß¿äÇÕ´Ï´Ù. ±âÁ¸ ¼­ÀûÀº ÀÌ ºÎºÐ¿¡¼­ ÀÛ¾÷ÇÏ´Â °ÍÀÌ µå¹°´Ù°í ³ª¿ÍÀÖÁö¸¸, ¹Ù·Î ÀÌ À̺¥Æ®¸¦ ÀûÀýÈ÷ »ç¿ëÇÏ¸é »ó´çÈ÷ Àß Á¤µ·µÈ ÆäÀÌÁöÀÇ ±¸¼ºÀÌ °¡´ÉÇÏ°Ô µÈ´ä´Ï´Ù)
Page_Unload ÆäÀÌÁö°¡ ·»´õ¸µÀ» ³¡¸¶Ä£ µÚ¿¡, ¸ðµç ÀÛ¾÷À» ¸¶¹«¸®ÇÒ ¶§ ¹ß»ýÇÏ´Â À̺¥Æ®ÀÌ´Ù. ÀÌ À̺¥Æ®´Â ÃÖÁ¾ Á¤¸® ÀÛ¾÷À» ¼öÇàÇϱ⿡ ÁÁÀº Àå¼ÒÀ̱⿡, µ¥ÀÌÅͺ£À̽º¿¡ ´ëÇÑ ¿¬°áÀ» ´Ý´Â ÀÛ¾÷À̳ª, °³Ã¼ÀÇ ÇØÁ¦, ¿­·ÁÁ® ÀÖ´Â ÆÄÀÏÀÇ ´Ý±â µîÀÇ ÀÛ¾÷ÀÌ À̰÷¿¡¼­ ¼öÇàµÈ´Ù. Áß¿äÇÑ °ÍÀº ÀÌ À̺¥Æ®¿¡¼­´Â È­¸é¿¡ Ãâ·ÂÇÏ´Â ¾î¶°ÇÑ Äڵ嵵 µ¿ÀÛÇÏÁö ¾Ê´Â´Ù´Â °ÍÀÌ´Ù. ±×·¯ÇÑ ÀÛ¾÷Àº ÀÌ À̺¥Æ® ÀÌÀü¿¡ ¸ðµÎ ¼öÇàÇØ¾ß ÇÑ´Ù.

ÀÚ. À̰ÍÀÌ PageÀÇ À̺¥Æ®µéÀÌ µ¿ÀÛÇÏ´Â È帧À̶ø´Ï´Ù. ¸ÚÁöÁÒ?

ÀϹÝÀûÀÎ °æ¿ì´Â ÀÌ À̺¥Æ®µé Áß¿¡¼­ Page_Load ¸¦ Á¦¿ÜÇϰí´Â ±×¸® »ç¿ëÇÒ ÀÏÀÌ ¾ø´Ù´Â °Íµµ ÀÌ¹Ì ¿©·¯ºÐÀº ¾Æ½Ã°í °è½Ç °Ì´Ï´Ù. ¿©·¯ºÐÀº ÀϹÝÀûÀ¸·Î º¯¼ö ÃʱâÈ­¸¦ ÀÌ À̺¥Æ® ³»¿¡¼­ Çϰí ÀÖÀ» °ÍÀ̸ç, DataGrid ·ÎÀÇ µ¥ÀÌÅÍ ¹ÙÀεùµµ ÁÖ·Î ÀÌ Àå¼Ò¿¡¼­ ÇϽðí´Â ÇÒ °ÍÀÔ´Ï´Ù. ±×¸®°í, À¥ Æû ³»¿¡ Á¸ÀçÇÏ´Â BUttonÀ̳ª TextBox µîÀÇ ÄÁÆ®·Ñ¿¡¼­ ¹ß»ýÇÑ À̺¥Æ®µéÀº Page_Load À̺¥Æ®°¡ ÀϾ ´ÙÀ½¿¡ ¹ß»ýÇÑ´Ù´Â ´ÙÀ½ »ç½Çµµ ¾Ë°í °è½Ç °Ì´Ï´Ù. ±×·¸ÁÒ?

ÇÏÁö¸¸, À§ÀÇ Ç¥´Â ´ÜÁö PageÀÇ ´ëÇ¥ÀûÀÎ À̺¥Æ®¸¸À» ¼Ò°³ÇÑ °Í¿¡ ºÒ°úÇÏÁö¿ä. ½ÇÁ¦·Î´Â À¥ ÆûÀÇ ÀüüÀûÀÎ À̺¥Æ® ó¸® ÇÁ·Î¼¼½º´Â ´ÙÀ½°ú °°Àº È帧À» °¡Áö°í ÀÖ´ä´Ï´Ù. ¹°·Ð, ¾Æ·¡ÀÇ ±×¸²¿¡¼­ Ç¥ÇöÇÑ ¸ðµç °ÍÀ» ±â¾ïÇϰí ÀÖÀ» ÇÊ¿ä´Â ¾øÁö¸¸, ³ªÁß¿¡ ¿©·¯ºÐÀÇ ³»°øÀÌ »ó½ÂÇÑ´Ù¸é ÀÌ ±×¸²Àº ¾Æ¸¶µµ »ó´çÈ÷ À¯¿ëÇÒ °ÍÀ̶ó »ý°¢ÇÕ´Ï´Ù.

 

ÇÏÁö¸¸, ÀÌ·¯ÇÑ À̺¥Æ® ±¸Á¶·Î ÀÎÇØ °¡²ûÀº ÄÚµå ÀÛ¼ºÀÇ ¼ø¼­¶§¹®¿¡ °í¹ÎÀ» ÇϽŠÀûµµ ÀÖÀ» °ÍÀ̶ó ÃßÃøÇÕ´Ï´Ù. ¿¹¸¦ µé¸é, À¥ Æû ¼­¹ö ÄÁÆ®·Ñµé(Button, TextBoxµî)ÀÇ °³º°ÀûÀÎ À̺¥Æ®µé(ex: Clicked, TextChanged µî...)ÀÌ Page_Load À̺¥Æ® ÀÌÈÄ¿¡ ¹ß»ýÇÔÀ¸·Î½á ÄÚµù ½Ã¿¡ ¿©·¯°¡Áö¸¦ ¿¹»óÇϰí, °í·ÁÇØ¾ß¸¸ ÇÏ´Â ÇǰïÇÑ Á¡µéÀÌ »ý±â°ï ÇÑ´Ù´Â °ÍÀÌÁÒ. ÀÌÇØ°¡ Àß ¾È°¡½Ã³ª¿ä? ±×·¸´Ù¸é, ¿¹Á¦¸¦ ÅëÇØ¼­ Çѹø ±× ÇǰïÇÔÀ̶ó´Â °ÍÀÌ ¹«¾ùÀÎÁö È®ÀÎÇØ º¸µµ·Ï Çϰí, ±×°ÍÀ» ¾î¶² ½ÄÀ¸·Î °³¼±ÇØ ³ª°¥ ¼ö ÀÖ´ÂÁöµµ Çѹø ¾Ë¾Æº¸µµ·Ï ÇØ¿ä

¸ÕÀú, ¿©·¯ºÐÀÌ ±âÁ¸¿¡ ÀÛ¾÷ÇÏ´ø VS.NET ÇÁ·ÎÁ§Æ®¿¡(¸¸ÀÏ, ±×·±°Å ¾ø´Ù¸é »õ·ÎÀÌ ¸¸µå¼ÅµÎ µË´Ï´Ù) PreRenderEventTest.aspx ¶ó´Â À̸§ÀÇ ÆäÀÌÁö¸¦ Çϳª »õ·ÎÀÌ Ãß°¡ÇØ ÁÖ¼¼¿ä. »ç½Ç ÆÄÀÏ À̸§ÀÌ¾ß ¿©·¯ºÐ ¸¾´ë·Î ÁּŵΠµË´Ï´Ù¸¸...  ±×·¡µµ, ±â¿ÕÀÌ¸é °°ÀÌ ÇØº¸ÁÒ~~

PreRenderEventTest.aspx À¥ ÆûÀ» ¸¸µå¼Ì´Ù¸é, Æû À§¿¡ DataGrid ÄÁÆ®·ÑÀ» Çϳª ¿Ã¸®½Ã±¸¿ä. ±× ÄÁÆ®·Ñ¿¡ ¸¶¿ì½º ¿ìÃøÅ¬¸¯ ÇÑ ´ÙÀ½, [ÀÚµ¿ ¼­½Ä]¿¡¼­ ]´Ù¾ç 2]¸¦ ¼±ÅÃÇϵµ·Ï Çϼ¼¿ä ¹°·Ð, ÀÌ ½ºÅ¸ÀÏÀº ¿©·¯ºÐÀÌ ¿øÇÏ´Â °ÍÀ¸·Î ¼±ÅÃÇØµµ ¹«¹æÇϱä ÇÏÁö¸¸ ¸»ÀÔ´Ï´Ù. ^^;

 

¿©±â±îÁö µÇ¾ú´Ù¸é, ÇöÀç À¥ ÆûÀÇ [HTML] ¸ðµå·Î À̵¿Çϼż­ ¾à°£ÀÇ <style> ű׸¦ Ãß°¡ÇØ º¸µµ·Ï ÇØ¿ä. ¹°·Ð, ¹Ýµå½Ã ±×·¡¾ßÇÏ´Â °ÍÀº ¾Æ´ÏÁö¸¸ ÆäÀÌÁöÀÇ Ãâ·Â°á°ú°¡ Á¶±ÝÀº ±ò²ûÇÏ°Ô ³ª¿Ã ¼ö ÀÖµµ·Ï ¸»ÀÔ´Ï´Ù. ´ÙÀ½°ú °°Àº <style>Äڵ带 <head> ±¸¿ª¿¡ Ãß°¡ÇÏ½Ã¸é µÉ °ÍÀÔ´Ï´Ù.

<style>
    grid { FONT-SIZE: 11px; FONT-FAMILY: verdana }
    A { TEXT-DECORATION: none }
<style>

ÀÚ. ´Ù µÇ¾ú´Ù¸é ÀÌÁ¦ DaraGrid ÄÁÆ®·ÑÀÇ AutoGenerateColumns ¼Ó¼ºÀÇ °ªÀ» False·Î Áֽðí, cssClass ¼Ó¼ºÀÇ °ªÀ¸·Î´Â ¾Æ±î <style>¿¡¼­ ÀÛ¼ºÇÑ grid ¸¦ ÁÖµµ·Ï ÇØ¿ä. ^^; ±×¸®°í, DataGrid ÄÁÆ®·ÑÀÇ Ä÷³ Ãâ·ÂºÎ¸¦ ´ÙÀ½°ú °°ÀÌ Çѹø ÀÛ¼ºÇØ º¸µµ·Ï ÇÏÀÚ±¸¿ä. Âü°í·Î, ÀÌ ÄÚµå´Â Á¦ ASP.NET Ã¥ÀÇ 'DataGrid' Àå¿¡¼­ ¿¹Á¦·Î ÀÛ¼ºÇØ º¸¾Ò´ø ÆäÀÌÁöµé°ú °ÅÀÇ À¯»çÇÕ´Ï´Ù. pubs µ¥ÀÌÅͺ£À̽º·ÎºÎÅÍ Ã¥ Á¤º¸¸¦ °¡Á®¿Í¼­ ±× ¸ñ·ÏÀ» Ãâ·ÂÇØ ÁÖ´Â °ÍÀÌÁö¿ä. °í·Î, ÀÌ¹Ì ±× ºÎºÐÀ» °øºÎÇϽŠºÐµéÀº ¿Ö Columns ¼½¼ÇÀ» À̿Ͱ°ÀÌ ²Ù¸ç¾ß ÇÏ´ÂÁö, ¶ÇÇÑ ÀÌ·¸°Ô ²Ù¹Ì¸é ¾î¶² ½ÄÀ¸·Î Ãâ·ÂµÉÁö¸¦ ¿¹»óÇÏ½Ç ¼ö ÀÖÀ» °ÍÀ̶ó »ý°¢ÇÕ´Ï´Ù.

¸»¾¸µå·È´Ù½ÃÇÇ, À̹ø °­Á´ PreRender¶ó´Â À볪´Â À̺¥Æ®¿¡ ´ëÇØ ¾Ë¾Æº¸´Â ½Ã°£ÀÌÁö, DataGrid ÄÁÆ®·ÑÀÇ »ç¿ë¹æ¹ýÀ̳ª, <Columns> ±¸¿ªÀÇ ÀÛ¼º ¹æ¹ýÀ» ¾Ë·Áµå¸®´Â ½Ã°£Àº ¾Æ´Ï±â¿¡, ÀÌ·¯ÇÑ ºÎºÐ¿¡ ´ëÇÑ ¼³¸íÀº °ú°¨ÇÏ°Ô °Ç³Ê¶Ù·Á ÇÕ´Ï´Ù. ¸¸ÀÏ, ±× ºÎºÐ¿¡ ´ëÇÑ ÇнÀÀÌ ¾ÆÁ÷ ¹ÌÈíÇϽŠºÐµéÀÌ ÀÖ´Ù¸é ¸ÕÀú ±×·¯ÇÑ ºÎºÐÀ» ÇнÀÇϽŠ´ÙÀ½¿¡ ÀÌ °­Á¸¦ º¸¼ÌÀ¸¸é ÇÕ´Ï´Ù. °³ÀÎÀûÀ¸·Î´Â ±×·¡¾ßÁö¸¸ ÀÌ °­Á¿¡ ´ëÇÑ ÀÌÇØ°¡ ½ï½ï µÉ °ÍÀ̶ó »ý°¢Çϰŵç¿ä.... ^^(ÄÚµå Áß ÇÏ¾á ¹è°æÀ» °¡Áø ºÎºÐÀÌ Á÷Á¢ Ãß°¡ÇÑ ºÎºÐÀÌ µÇ°Ú½¿´Ù ^^)

<asp:DataGrid id="DataGrid1" runat="server" AutoGenerateColumns="False" CssClass="grid"
    BorderColor="#3366CC" BorderStyle="None" BorderWidth="1px"  AllowPaging="True"
    BackColor="White" CellPadding="4">
    <SelectedItemStyle Font-Bold="True" ForeColor="#CCFF99" BackColor="#009999">
        </SelectedItemStyle>
    <ItemStyle ForeColor="#003399" BackColor="White"></ItemStyle>
    <HeaderStyle Font-Bold="True" ForeColor="#CCCCFF" BackColor="#003399">
        </HeaderStyle>
    <FooterStyle ForeColor="#003399" BackColor="#99CCCC"></FooterStyle>
    <Columns>
        <asp:BoundColumn DataField="title_id" HeaderText="ISBN">
            <HeaderStyle HorizontalAlign="Center" Width="50px"></HeaderStyle>
            <ItemStyle HorizontalAlign="Center"></ItemStyle>
        </asp:BoundColumn>
      <asp:BoundColumn DataField="title" HeaderText="Á¦¸ñ">
            <HeaderStyle HorizontalAlign="Center" Width="300px"></HeaderStyle>
            <ItemStyle HorizontalAlign="Left"></ItemStyle>
        </asp:BoundColumn>
        <asp:BoundColumn DataField="pubDate" HeaderText="ÀÛ¼ºÀÏ"
            DataFormatString="{0:yyyy-MM-dd (tt hh:mm)}">
            <HeaderStyle HorizontalAlign="Center" Width="150px"></HeaderStyle>
        </asp:BoundColumn>
        <asp:ButtonColumn Text="ǦÁý" ButtonType="PushButton" HeaderText="ÆíÁý"
                HeaderStyle-HorizontalAlign="Center" CommandName="edit">
            </asp:ButtonColumn>
    </Columns>
    <PagerStyle HorizontalAlign="Left" ForeColor="#003399" BackColor="#99CCCC"
         Mode="NumericPages"></PagerStyle>
</asp:DataGrid>

±×¸®µå¿¡´Â ÆäÀÌ¡ ±â´ÉÀ» »ç¿ëÇϵµ·Ï ÁöÁ¤ÇØ µÎ¾ú±¸¿ä. ±×¸®µåÀÇ ¸¶Áö¸· Ä÷³¿¡´Â ¹öưÀ» Çϳª Ãß°¡ÇØ µÎ¾ú½À´Ï´Ù. ÀÌ ¹öưÀº Ŭ¸¯µÉ °æ¿ì, ÇöÀç ÇàÀ» ÆíÁý¸ðµå·Î ¹Ù²Ù±â À§Çؼ­ µÐ ¹öưÀÏ »ÓÀÔ´Ï´Ù.  ±×¸®°í, ÇöÀç±îÁöÀÇ ÀÛ¾÷À¸·Î À¥ÆûÀº ´ÙÀ½°ú °°Àº ¸ð½ÀÀ» ¶ç°í ÀÖÀ» °Ì´Ï´Ù. ±×ÃÝ? ±×ÃÝ?

ÀÚ. ÀÌÁ¦ È­¸éÀÇ Ãâ·ÂºÎ´Â ¸ðµÎ ÀÛ¼ºÇÑ °Í °°³×¿ä. ÀÌÁ¦ ÄÚµå ºñÇÏÀεåÂÊÀ¸·Î µé¾î°¡¼­, DataGrid¿¡ µ¥ÀÌÅ͸¦ ¹Ý¿µÇØ º¸µµ·Ï ÇսôÙ.

ÀϹÝÀûÀ¸·Î¶ó¸é ¿©·¯ºÐÀº ´ÙÀ½°ú °°ÀÌ ÄÚµå ºñÇÏÀÎµå ±¸¿ªÀ» ²Ù¹Ì½Ç °ÍÀ¸·Î »ý°¢µÇ³×¿ä(Âü°í·Î, ÀÌ °­Á¸¦ À§Çؼ­ ¾²ÀÌ´Â Å×À̺íÀº SQL ¼­¹ö¿¡¼­ ±âº»ÀûÀ¸·Î Á¦°øÇÏ´Â Pubs µ¥ÀÌÅͺ£À̽º ³»ÀÇ titles¶ó´Â Å×À̺íÀ̶ø´Ï´Ù)

    using System;
    using System.Collections;
    using System.ComponentModel;
    using System.Data;
    using System.Data.SqlClient;
    using System.Drawing;
    using System.Web;
    using System.Web.SessionState;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls;
    
    namespace ForTesting
    {
        /// <summary>
        /// PreRenderEventTest¿¡ ´ëÇÑ ¿ä¾à ¼³¸íÀÔ´Ï´Ù.
        /// </summary>
        public class PreRenderEventTest : System.Web.UI.Page
        {
            privatestringConnectStr="server=(local);database= pubs;userid=sa;password=xx;";
            protected System.Web.UI.WebControls.DataGrid DataGrid1;

            private void Page_Load(object sender, System.EventArgs e)
            {
                // ¿©±â¿¡ »ç¿ëÀÚ Äڵ带 ¹èÄ¡ÇÏ¿© ÆäÀÌÁö¸¦ ÃʱâÈ­ÇÕ´Ï´Ù.

                if(!IsPostBack)
                {
                    DataGrid1.PageSize = 10;
                    Listing();
                }
            }

            private void Listing()
            {
                SqlConnection Con = new SqlConnection(ConnectStr);
                SqlCommand Cmd = new SqlCommand();
                Cmd.Connection = Con;
                Cmd.CommandText = " SELECT title_id, title, pubDate FROM titles " +
                                                      " Order by title_id desc";

                SqlDataAdapter adp = new SqlDataAdapter(Cmd);
                DataSet ds = new DataSet();

                adp.Fill(ds, "MyBoard");
                DataGrid1.DataSource = ds;
                DataGrid1.DataBind();
            }

            Web Form Designer generated code
        }
    }

´ë·«ÀûÀÎ ÄÚµå´Â ÀÌÇØÇÏ½Ç °ÍÀ̶ó »ý°¢ÇÕ´Ï´Ù. ¹°·Ð, ±×¸®µåÀÇ AutoPaging ±â´ÉÀ» Äѵξú±â¿¡, ±×¸®µå¿¡ µ¥ÀÌÅ͸¦ ¹ÙÀεùÀ» Çϱâ Àü¿¡ PageSize ¸¦ ÁöÁ¤ÇØÁÖ¸é ±× Å©±â¿¡ µû¶ó ÀÚµ¿À¸·Î ±×¸®µå´Â ÆäÀÌ¡ÀÌ µÉ °ÍÀÔ´Ï´Ù. ÇÏÁö¸¸, Áö±Ý »óÅ·δ ÆäÀÌ¡ÀÌ Àý¹Ý¹Û¿¡ µÇÁö´Â ¾ÊÁÒ. ½ÇÁ¦ ÆäÀÌ¡ÀÌ µÇ·Á¸é, ÇØ´ç ±×¸®µå ÄÁÆ®·ÑÀÇ PageIndexChanged À̺¥Æ®¸¦ ÀÛ¼ºÇØ ÁÖ¾î¾ß Çϴϱî¿ä. ±×·¸´Ù¸é, ±×·¯ÇÑ Äڵ带 Çѹø Ãß°¡ÇØ º¸µµ·Ï ÇսôÙ.

À̸¦ À§Çؼ­´Â ±×¸®µåÀÇ PageIndexChanged À̺¥Æ® Äڵ带 ÀÛ¼ºÇÒ Çʿ䰡 Àִµ¥¿ä. ÀÌ À̺¥Æ®¸¦ ½±°Ô ÀÛ¼ºÇϱâ À§Çؼ­ °£´ÜÇÏ°Ô À¥ ÆûÀÇ µðÀÚÀÌ³Ê ¸ðµå¿¡¼­ ±×¸®µå¸¦ ¸¶¿ì½º·Î Ŭ¸¯ÇÑ µÚ, [¼Ó¼º â]¿¡¼­ ¹ø°³¸ð¾çÀÇ ¹öưÀ» Ŭ¸¯Çϰí, PageIndexChanged ¶ó´Â À̺¥Æ®±¸¿ªÀ» ´õºíŬ¸¯ÇÏ½Ã¸é µË´Ï´Ù. ´ÙÀ½ ±×¸²Ã³·³ ¸»ÀÌÁö¿ä.

±×·¯¸é, ÄÚµå ºñÇÏÀÎµå ±¸¿ª¿¡ ´ÙÀ½°ú °°Àº Äڵ尡 ÀÚµ¿À¸·Î »ý¼ºµÇ±¸¿ä. ¿©·¯ºÐÀº ±× ±¸¿ªÀ» ´ÙÀ½°ú °°ÀÌ ÀÛ¼ºÇÏ½Ã¸é µË´Ï´Ù.

    private void DataGrid1_PageIndexChanged(object source,
                 System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
    {
        DataGrid1.CurrentPageIndex = e.NewPageIndex;
        Listing();

    }

ÇØ¼­, À§ÀÇ Äڵ常À¸·Îµµ ¿©·¯ºÐÀº ÆäÀÌ¡ÀÌ µÇ´Â ¸ÚÁø ±×¸®µå¸¦ ¸¸µé¾î ³¾ ¼ö°¡ ÀÖ°Ô µÇÁö¿ä. (¹°·Ð, ÀÚµ¿ ÆäÀÌ¡ ±â´ÉÀº ´ë·®ÀÇ µ¥ÀÌÅ͸¦ ´Ù·ê °æ¿ì¿¡´Â »ó´çÈ÷ ¼º´ÉÀÌ ¶³¾îÁý´Ï´Ù¸¸, Áö±Ýó·³ 20¿©°³ ¹Û¿¡ µÇÁö ¾Ê´Â µ¥ÀÌÅ͸¦ ´Ù·ê °æ¿ìÀÎÁö¶ó Çѹø »ç¿ëÇØ º¸¾Ò½À´Ï´Ù)

´Ü, À§ÀÇ Äڵ带 ÀÛ¼ºÇÒ °æ¿ì ÁÖÀÇÇÒ Á¡Àº ÆäÀÌÁö º¯°æ ½Ã, ±× »õ·Î¿î ÆäÀÌÁö¸¦ DataGrid ÄÁÆ®·ÑÀÇ CurrentPageIndex ·Î ÁöÁ¤ÇØ ÁØ ´ÙÀ½, ¹Ýµå½Ã ´Ù½Ã±Ý µ¥ÀÌÅ͸¦ ¹ÙÀεå ÇØÁÖ¾î¾ß ÇÑ´Ù´Â Á¡ÀÔ´Ï´Ù. ±×·¸Áö ¾ÊÀ¸¸é, ÇöÀç ÁöÁ¤ÇÑ ÆäÀÌÁö°¡ ¾Æ´Ñ ÀÌÀü ÆäÀÌÁö°¡ ³ª¿Ã ¼ö Àְŵç¿ä. ÀÚ. ÀÌÁ¦ ÆäÀÌÁö¸¦ ÄÄÆÄÀÏÇϰí Çѹø ½ÇÇàÇØ º¸¼¼¿ä. ÆäÀÌÁö°¡ ±â´ëÇÑ ´ë·Î µ¿ÀÛÇÏ´Â °ÍÀ» È®ÀÎÇÒ ¼ö ÀÖÁö¿ä?

±×·¸´Ù¸é, À̹ø¿¡´Â ±×¸®µå¿¡ ¿Ã·ÁÁ® ÀÖ´Â ÆíÁý ¹öưÀÌ µ¿ÀÛÇϵµ·Ï Çѹø ¸¸µé¾î º¼±î¿ä? À̸¦ À§Çؼ­´Â ±×¸®µåÀÇ EditCommand À̺¥Æ® Äڵ带 ÀÛ¼ºÇÒ Çʿ䰡 Àִµ¥¿ä. ÀÌ À̺¥Æ®¸¦ ½±°Ô ÀÛ¼ºÇϱâ À§Çؼ­ °£´ÜÇÏ°Ô À¥ ÆûÀÇ µðÀÚÀÌ³Ê ¸ðµå¿¡¼­ ±×¸®µå¸¦ ¸¶¿ì½º·Î Ŭ¸¯ÇÑ µÚ, [¼Ó¼º â]¿¡¼­ ¹ø°³¸ð¾çÀÇ ¹öưÀ» Ŭ¸¯Çϰí, EditCommand  ¶ó´Â À̺¥Æ®±¸¿ªÀ» ´õºíŬ¸¯ÇÏ½Ã¸é µË´Ï´Ù. ´ÙÀ½ ±×¸²Ã³·³ ¸»ÀÌÁö¿ä. (Âü. EditCommand À̺¥Æ®´Â <asp:ButtonColumn> ÀÇ CommandName ÀÌ edit ÀÎ °æ¿ì¿¡ »ç¿ëµÇ´Â À̺¥Æ®¶ó´Â °ÍÀº ¾Ë°í °è½ÃÁö¿ä?)

À§¿Í °°ÀÌ ´õºíŬ¸¯À» Çϸé ÄÚµå ºñÇÏÀÎµå ±¸¿ª¿¡´Â ´ÙÀ½°ú °°Àº À̺¥Æ® Äڵ尡 ÀÚµ¿À¸·Î »ý¼ºµÉ °ÍÀÔ´Ï´Ù. ±× ÄÚµå ±¸¿ª¾È¿¡ Äڵ带 ´ÙÀ½°ú °°ÀÌ ±âÀÔÇØ ÁÖ¼¼¿ä. ÀÌ ÄÚµå´Â ÇöÀç ±×¸®µå ÄÁÆ®·Ñ¿¡¼­ ¼±ÅÃµÈ ÇàÀ» ÆíÁý¸ðµå·Î ÁöÁ¤ÇÏ´Â ÄÚµåÀ̱¸¿ä. ±×·¸°Ô ÁöÁ¤ÇÑ ´ÙÀ½¿¡´Â, ¹Ýµå½Ã ´Ù½Ã±Ý µ¥ÀÌÅ͸¦ ¹ÙÀεùÇØÁÖ¾î¾ß ÇÑ´ä´Ï´Ù. ±×·¡¾ßÁö, ÆäÀÌÁö°¡ ´Ù½Ã ±×·ÁÁö¸é¼­ ÇØ´ç ÇุÀÌ ÆíÁý¸ðµå·Î ³ªÅ¸³ª°Ô µÇ´Â °ÍÀÌÁö¿ä

    private void DataGrid1_EditCommand(object source,
            System.Web.UI.WebControls.DataGridCommandEventArgs e)
    {
        DataGrid1.EditItemIndex = e.Item.ItemIndex;
        Listing();
    }

ÀÌ·¸°Ô ÀÛ¼ºÇϼ̴ٸé, ´Ù½Ã±Ý ÆäÀÌÁö¸¦ ÄÄÆÄÀÏÇÏ°í ½ÇÇàÇØ º¸µµ·Ï Çϼ¼¿ä ^^. ±×·¯¸é ÀÌÁ¦´Â ÆäÀÌ¡ ±â´É°ú ÇÔ²² Çà ´ÜÀ§ ÆíÁý ±â´Éµµ Á¦´ë·Î µ¿ÀÛÇÏ°Ô µÉ °ÍÀÔ´Ï´Ù. ´ÙÀ½ ±×¸²°ú °°ÀÌ ¸»ÀÌÁö¿ä ^^

Á¦°¡ »ùÇ÷Π¸¸µé¾î º¸´Â ±â´ÉÀº ¿©±â±îÁö ÀÔ´Ï´Ù. ¼­µÎ¿¡¼­µµ ¾ð±ÞÇßµíÀÌ, À̹ø ¿¹Á¦°¡ ±×¸®µå ÄÁÆ®·ÑÀÇ »ç¿ë¹æ¹ý¿¡ ´ëÇÑ °ÍÀº ¾Æ´Ï´Ï±î¿ä. ¾îµð±îÁö³ª, À̹ø ¿¹Á¦´Â Page_PreRender À̺¥Æ®ÀÇ È¿°úÀûÀÎ »ç¿ë¹ý¿¡ ´ëÇÑ À̾߱âÀÔ´Ï´Ù. Ȥ½Ã ±î¸Ô¾úÀ»Áö ¸ð¸£°ÚÁö¸¸, ÁøÂ¥ÀÔ´Ï´Ù. -_-+

ÇØ¼­, ±×¸®µå ÄÁÆ®·Ñ¿¡´Ù°¡ ±â´ÉÀ» ºÙÀÌ´Â °ÍÀº ¿©±â±îÁö¸¸ À̾߱âÇϱ¸¿ä. ¿ø·¡ ÇÏ·Á´ø À̾߱⸦ ÀÌÁ¦ ½ÃÀÛÇØ º¼±î ÇÕ´Ï´Ù. Áö±Ý±îÁö Äڵ带 ¸ÚÁö°Ô ÀÛ¼ºÇØ º¸¾Ò´Âµ¥¿ä. Äڵ带 ÀÛ¼ºÇÏ´Ùº¸´Ï ´À²¸Áö´Â ºÒ¸¸°°Àº °ÍÀº ¾ø¾ú³ª¿ä? ¿¹¸¦ µé¸é, ºÒÆíÇÏ°Ô µ¿ÀÏÇÑ Äڵ带 ¹Ýº¹ÇÑ´Ù´øÁö ÇÏ´Â ¹®Á¦·Î ¸»ÀÌÁÒ. ¸¸ÀÏ, ¾î¶°ÇÑ ºÒÆíµµ ´À³¢Áö ¸øÇß´Ù¸é ¹¹..  ±âÁ¸°ú °°ÀÌ ÀÛ¼ºÇصµ Å« ¹®Á¦´Â ¾ø½À´Ï´Ù¸¸......  Å¿À´Â ÀÌ·¯ÇÑ Äڵ带 °³¼±ÇØ º¸·Á°í ÇÕ´Ï´Ù. °³¼±ÇÏ·Á´Â °ÍÀº ¹Ù·Î... Page_Load À̺¥Æ® ÀÌÈÄ, ±×¸®µå¿¡ ±â´ÉÀ» Ãß°¡Çϸ鼭 ¸Å À̺¥Æ®¸¶´Ù Ãß°¡Çؾ߸¸ Çϴ Listing() À̶ó´Â ÇÔ¼ö(¹ÙÀεùÀ» À§ÇÑ ÇÔ¼ö)ÀÇ À§Ä¡¿¡ ´ëÇÑ °ÍÀÔ´Ï´Ù.

ÄÚµå ºñÇÏÀÎµå ÆäÀÌÁö¿¡¼­ Áö±Ý±îÁö ÀÛ¼ºÇÑ Äڵ带 Çѹø ÀüüÀûÀ¸·Î ¹Ù¶óº¸µµ·Ï ÇØ¿ä. Äڵ带 Àß º¸¸é ¸Å À̺¥Æ® ó¸®ÇÔ¼ö¸¶´Ù Listing() À̶ó´Â ÇÔ¼ö°¡ ¹Ýº¹µÇ°í ÀÖ´Â °ÍÀ» º¼ ¼ö ÀÖ½À´Ï´Ù.

    private void Page_Load(object sender, System.EventArgs e)
    {
        // ¿©±â¿¡ »ç¿ëÀÚ Äڵ带 ¹èÄ¡ÇÏ¿© ÆäÀÌÁö¸¦ ÃʱâÈ­ÇÕ´Ï´Ù.
        if(!IsPostBack)
        {
            DataGrid1.PageSize = 10;
            Listing(); //¿ä±â!!         }
    }

    private void DataGrid1_PageIndexChanged(object source,
            System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
    {
        DataGrid1.CurrentPageIndex = e.NewPageIndex;
        Listing(); //¿ä±â!!     }

    private void DataGrid1_EditCommand(object source,
            System.Web.UI.WebControls.DataGridCommandEventArgs e)
    {
        DataGrid1.EditItemIndex = e.Item.ItemIndex;
        Listing(); //¿ä±â!!     }

Page_Load ¿¡µµ, PageIndexChanged À̺¥Æ®¿¡µµ, EditCommand ¿¡µµ ¸»ÀÌÁö¿ä. À̰ÍÀº ´ç¿¬ÇÑ °ÍÀ̱ä ÇÕ´Ï´Ù. ±×¸®µå°¡ ÆäÀÌ¡ÀÌ µÇ·Á¸é PageIndexChanged À̺¥Æ® ÇÔ¼ö¿¡´Ù°¡ »õ·ÎÀÌ Ãâ·ÂÇÒ ÆäÀÌÁö ¹øÈ£¸¦ ÁöÁ¤ÇÑ µÚ¿¡ ¹ÙÀεùÀ» ÇØ ÁÖ¾î¾ß Çϰí, ±×¸®µåÀÇ Æ¯Á¤ ÇàÀ» ÆíÁýÇÏ·Á¸é ¶ÇÇÑ, EditCommand À̺¥Æ® ±¸¿ª¿¡¼­ ÆíÁýÇÒ Çà ¹øÈ£¸¦ ÁöÁ¤ÇÑ ´ÙÀ½, ´Ù½Ã±Ý ¹ÙÀεùÀ» ÇØÁÖ¾î¾ß ÇÏ´Â °ÍÀº ´ç¿¬Çϱ⠶§¹®ÀÌÁö¿ä.

ÇÏÁö¸¸, ±×·¯ÇÑ À̺¥Æ®¸¦ °ÅÄ¡Áö ¾ÊÀ» °æ¿ì, Áï ÆäÀÌÁö°¡ óÀ½ ·ÎµåµÉ °æ¿ì¿¡µµ µ¥ÀÌÅÍ´Â ¹ÙÀÎµå µÇ¾î¾ß Çϱ⿡, Page_Load ¿¡¼­µµ ¹ÙÀεùÀº ¼öÇàÇϰí ÀÖ±¸¿ä, ÆäÀÌÁö°¡ Æ÷½ºÆ®¹é µÉ °æ¿ì´Â(Áï, ¿ì¸®ÀÇ Äڵ忡¼­´Â EditCommand ³ª PageIndexChanged °æ¿ì¿¡) °¢°¢ÀÇ ÇÔ¼ö³»¿¡¼­ ÀÚü ¹ÙÀε带 ¼öÇàÇϱ⿡ ±»ÀÌ ¹ÙÀε带 ¸ÕÀú ¼öÇàÇÒ Çʿ䰡 ¾ø¾î¼­, Page_Load  À̺¥Æ® ¿¡¼­´Â IsPostBack ¿©ºÎ¸¦ Ã¼Å©ÇØ¼­ IsPostBack ÀÌ ¾Æ´Ñ °æ¿ì¿¡¸¸ ¹ÙÀεîÀ» ¼öÇàÇÏ°Ô Çϰí ÀÖ´Â °ÍÀÔ´Ï´Ù.

´Ù½Ã ¸»Çؼ­, ÇöÀçÀÇ ÄÚµå´Â ³í¸®ÀûÀ¸·Î´Â Á¶±Ý º¹ÀâÇÑ ´ÙÀ½°ú °°Àº ±¸Á¶·Î ¹ÙÀεùÀÌ ¼öÇàµÇ°í ÀÖ´Â °ÍÀÌÁö¿ä.

±»ÀÌ ´Ù½Ã ¼³¸íµå¸®ÀÚ¸é, ÆäÀÌÁö°¡ óÀ½ ·ÎµåµÉ °æ¿ì´Â ¹«Á¶°Ç Page_Load¿¡¼­ ¹ÙÀεù!, ÆäÀÌÁö¿¡¼­ ÄÁÆ®·ÑÀÇ À̺¥Æ®°¡ ¹ß»ýÇÒ °æ¿ì´Â Page_Load¿¡¼­ ¹ÙÀεùÇÏÁö ¾Ê°í, °¢°¢ÀÇ ÄÁÆ®·Ñ À̺¥Æ® ±¸¿ª³»¿¡¼­ ¹ÙÀεùÀ» ¼öÇàÇÏ´Â ±¸Á¶¶ó´Â °ÍÀÔ´Ï´Ù.

ÀÌ ±¸Á¶°¡ ³ª»Ú´Ù´Â °ÍÀº ¾Æ´ÏÁö¸¸, ÆäÀÌÁö¿¡ À̺¥Æ®µéÀÌ ¸¹ÀÌ ´Ã¾î³ª°Ô µÇ¸é, Â÷ÈÄ¿¡ ³í¸®ÀûÀ¸·Î ÀÌ·± À̺¥Æ® È帧À» ¸Ó¸®¼ÓÀ¸·Î °èȹÇϰí, Äڵ带 ÀÛ¼ºÇÏ´Â µ¥¿¡¼­ ¾î¶² ³í¸®ÀûÀÎ ¿À·ù°¡ ¹ß»ýÇÒ °¡´É¼ºÀÌ Ä¿Áø´Ù´Â ¹®Á¦°¡ ÀÖÁö¿ä. ÀÌ ¸ðµç ¹®Á¦ÀÇ ±Ù¿øÁö´Â ¹Ù·Î Page_Load  ÀÔ´Ï´Ù. ÀÌ À̺¥Æ®°¡ ÄÁÆ®·ÑµéÀÇ À̺¥Æ®º¸´Ù ¾Õ¼­¼­ ¼öÇàµÇ±â¿¡ ³í¸®ÀûÀ¸·Î Á¶±ÝÀº º¹ÀâÇÏ°Ô Ã³¸® ¼ø¼­¸¦ ¸Ó¸®¼ÓÀ¸·Î Á¤¸®ÇØ¾ß ÇÏ´Â °ÍÀÌÁö¿ä. ±×·¸´Ù¸é, °¡Á¤ÇØ º¾½Ã´ç. ¿¹¸¦ µé¾î, ¾î¶² À̺¥Æ®°¡ ÀÖ´Ù°í °¡Á¤ÇØ º¸´Â °ÅÁö¿ä. ±× À̺¥Æ®´Â ÄÁÆ®·ÑµéÀÇ À̺¥Æ®µéÀÌ ¸ðµÎ ÀϾ ´ÙÀ½¿¡ ¹ß»ýÇÏ´Â À̺¥Æ®¶ó°í °¡Á¤ÇØ º¸ÀÚ´Â °Ì´Ï´Ù. ±×·¸´Ù¸é, À§ÀÇ ÄÚµå ó¸® ¹æ½ÄÀº ´ÙÀ½°ú °°ÀÌ °£´ÜÇØ Áú ¼ö ÀÖ½À´Ï´Ù. ±×·¸Áö ¾Ê³ª¿ä?

ÀÌ·¸°Ô µÇ¸é, ±âÁ¸Ã³·³ ¹ÙÀεùÀ» ¼öÇàÇÏ´Â Listing() À» Page_Load À̺¥Æ®¿Í °¢°¢ÀÇ ÄÁÆ®·Ñ À̺¥Æ®¿¡ ºÐ»ê½ÃÄѼ­ µÎ°í, »óȲ¿¡ µû¶ó ¼öÇàµÇ°Ô ÇÒ Çʿ䰡 ¾ø¾îÁý´Ï´Ù. ´ÜÁö, ±× ó¸®(Listing())¸¦ "¸ðµç À̺¥Æ®µéÀÌ Ã³¸®µÈ ´ÙÀ½, ¸¶Áö¸·À¸·Î ¼öÇàµÇ´Â ¾î¶² ¸ÚÁø À̺¥Æ®"¿¡¼­ ó¸®Çϸé ÀüüÀûÀ¸·Î ÄÚµå¿Í ±¸¼ºÀÌ ±ò²ûÇØÁúÅ״ϱî¿ä.

±×·¸½À´Ï´Ù. ´«Ä¡Ã¤¼Ì°ÚÁö¸¸, ±×·¯ÇÑ À̺¥Æ®°¡ ¹Ù·Î Page_PreRender À̺¥Æ®ÀÔ´Ï´Ù. ±×·¸±â¿¡, PreRednder À̺¥Æ®¸¦ ¿©·¯ºÐÀÌ »ç¿ëÇÏ°Ô µÇ¸é, ±âÁ¸ÀÇ ÄÚµå´Â °£´ÜÇØ Áö°Ô µÊ°ú µ¿½Ã¿¡, ³í¸®ÀûÀΠȥµ·¿¡¼­ ¹þ¾î³¯ ¼öµµ ÀÖ½À´Ï´Ù.

´Ü, ÀÌ À̺¥Æ®¸¦ »ç¿ëÇÏ·Á¸é ¿©·¯ºÐÀº ÄÚµå ºñÇÏÀÎµå ±¸¿ª¿¡ À̺¥Æ® Çڵ鷯¸¦ µî·ÏÇØ ÁÖ¾î¾ß ÇÑ´ä´Ï´Ù. ÀÌ ºÎºÐÀº ·©±ÍÁö(¾ð¾î)¿¡ ¾àÇÑ ºÐµéÀÌ Á¶±Ý ÇǰïÇÏ°Ô »ý°¢ÇÒ ¼öµµ ÀÖ´Â ºÎºÐÀÏ °Í °°Àºµ¥¿ä. ¹¹ ±×¸® ¾î·Á¿î °ÍÀº ¾Æ´Õ´Ï´Ù. ´ÜÁö, ÄÚµå ºñÇÏÀÎµå ÆäÀÌÁö ¾È¿¡ ³»ºÎÀûÀ¸·Î ¼û¾îÀÖ´Â InitializeComponent() ±¸¿ª¿¡´Ù°¡ ÇÑ ÁÙÀÇ Äڵ带 Ãß°¡ÇØ Áֱ⸸ ÇÏ¸é µÇ´Â °ÍÀ̴ϱî¿ä.

¿©·¯ºÐÀÇ ÄÚµå ºñÇÏÀÎµå ±¸¿ª¿¡ º¸¸é Web Form Designer generated code ¶ó°í µÇ¾îÁ® ÀÖ´Â ºÎºÐÀÌ ÀÖÁÒ? ±× ºÎºÐÀ» È®Àå½ÃÄÑ º¸¸é InitializeComponent() ¶ó´Â ÇÔ¼ö°¡ ÀÖÀ» °ÍÀ̰í, ±× ¾È¿¡´Â VS.NETÀÌ ³»ºÎÀûÀ¸·Î ¸¸µé¾î µÐ À̺¥Æ® Çڵ鷯 µî·ÏºÎºÐÀÌ ÀÖÀ» °Ì´Ï´Ù. ´ÙÀ½°ú °°ÀÌ ¸»ÀÌÁÒ

    /// <summary>
    /// µðÀÚÀÌ³Ê Áö¿ø¿¡ ÇÊ¿äÇÑ ¸Þ¼­µåÀÔ´Ï´Ù.
    /// ÀÌ ¸Þ¼­µåÀÇ ³»¿ëÀ» ÄÚµå ÆíÁý±â·Î ¼öÁ¤ÇÏÁö ¸¶½Ê½Ã¿À.
    /// </summary>
    private void InitializeComponent()
    {
        this.DataGrid1.PageIndexChanged +=
            new DataGridPageChangedEventHandler(this.DataGrid1_PageIndexChanged);
        this.DataGrid1.EditCommand +=
            new DataGridCommandEventHandler(this.DataGrid1_EditCommand);
        this.Load += new System.EventHandler(this.Page_Load);
    }

±× ¾È¿¡ PreRender À̺¥Æ® ÇÔ¼ö¸¦ µî·ÏÇÏ´Â ´ÙÀ½ Äڵ带 Ãß°¡ÇÏ¸é µË´Ï´Ù. ´ÙÀ½°ú °°ÀÌ ¸»ÀÌÁÒ.

    /// <summary>
    /// µðÀÚÀÌ³Ê Áö¿ø¿¡ ÇÊ¿äÇÑ ¸Þ¼­µåÀÔ´Ï´Ù.
    /// ÀÌ ¸Þ¼­µåÀÇ ³»¿ëÀ» ÄÚµå ÆíÁý±â·Î ¼öÁ¤ÇÏÁö ¸¶½Ê½Ã¿À.
    /// </summary>
    private void InitializeComponent()
    {
        this.DataGrid1.PageIndexChanged +=
            new DataGridPageChangedEventHandler(this.DataGrid1_PageIndexChanged);
        this.DataGrid1.EditCommand +=
            new DataGridCommandEventHandler(this.DataGrid1_EditCommand);
        this.Load += new System.EventHandler(this.Page_Load);
        this.PreRender += new System.EventHandler(this.Page_PreRender);     }

±×¸®°í, ÀÌÁ¦ ¿©·¯ºÐÀÇ ÄÚµå ºñÇÏÀε忡 Page_PreRender À̺¥Æ® ÇÔ¼ö¸¦ Ãß°¡ÇÏ½Ã¸é µË´Ï´Ù.

    private void Page_PreRender(object sender, System.EventArgs e)
    {
    
    }

±×¸®°í, ¿©±â¿¡´Ù°¡ ¹ÙÀεå ÇÏ´Â ÇÔ¼öÀÎ Listing()À» ³ÖÀ¸¸é µÇ´Â °ÍÀÌÁÒ. ÀÏ´Ü, ¿©±â¸¦ ±×·¸°Ô ²Ù¹Ì°Ô µÇ¸é ÀÌÁ¦ ±âÁ¸ ÄÁÆ®·ÑÀÇ À̺¥Æ® ÇÔ¼öµé¿¡¼­´Â Listing() ÇÔ¼ö¸¦ ¸ðµÎ Á¦°ÅÇÒ ¼ö ÀÖ°Ô µË´Ï´Ù. À§¿¡¼­ ¼³¸íÇßµíÀÌ ¸»ÀÔ´Ï´Ù. ^^

ÇØ¼­, ÃÖÁ¾ÀûÀ¸·Î ²Ù¸çÁö´Â ¿©·¯ºÐÀÇ ÄÚµå ºñÇÏÀεå´Â ´ÙÀ½°ú °°°Ô µÇ´Â °ÍÀÌÁÒ

    private void Page_Load(object sender, System.EventArgs e)
    {
        // ¿©±â¿¡ »ç¿ëÀÚ Äڵ带 ¹èÄ¡ÇÏ¿© ÆäÀÌÁö¸¦ ÃʱâÈ­ÇÕ´Ï´Ù.
        if(!IsPostBack)
            DataGrid1.PageSize = 10;
    }

    private void DataGrid1_PageIndexChanged(object source,
            System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
    {
        DataGrid1.CurrentPageIndex = e.NewPageIndex;
    }

    private void DataGrid1_EditCommand(object source,
            System.Web.UI.WebControls.DataGridCommandEventArgs e)
    {
        DataGrid1.EditItemIndex = e.Item.ItemIndex;
    }

    private void Page_PreRender(object sender, System.EventArgs e)
    {
        Listing();
    }

±×·¸½À´Ï´Ù. ¹ÙÀε带 À§ÇÑ ÄÚµå´Â ÀÌÁ¦ Page_PreRender ¿¡´Ù°¡¸¸ ÀÛ¼ºÇÏ¸é ¸¸»ç OK ¶ó´Â ÀǹÌÀÔ´Ï´Ù. ÀÌ·¸°Ô µÇ¸é, ¿©·¯ºÐÀÇ ÄÚµå´Â ±âÁ¸º¸´Ù ÈξÀ °¡µ¶¼ºµµ ³ô¾ÆÁö°í, ÄÚµåÀÇ ¾çµµ ÁÙ¾îµé°Ô µË´Ï´Ù.

¹°·Ð, ¸ðµç °æ¿ì¿¡ Page_PreRender ¸¦ »ç¿ëÇÏ´Â °ÍÀÌ ÁÁ´Ù´Â °ÍÀº ¾Æ´Õ´Ï´Ù. Áö±ÝÀº ¸·»ó ÀûÀýÇÑ ¿¹°¡ ¶°¿À¸£Áö ¾Ê½À´Ï´Ù¸¸.. ÀÌ ±¸¿ªÀº ÀûÀýÇÏ°Ô »óȲ¿¡ ¸Â°Ô »ç¿ëÇØ¾ß ÇÒ °ÍÀÔ´Ï´Ù.

ÁÖ·Î, ÆäÀÌÁö¿¡ ¹º°¡¸¦ Ãâ·ÂÇϱâ À§ÇÑ ÄÚµåµéÀ» À̰÷¿¡ À§Ä¡½ÃŰ´Â °ÍÀÌ ÁÁ°ÚÁÒ. º¯¼ö¿¡ °ªÀ» ÇÒ´çÇѴٰųª ÇÏ´Â ÃʱâÈ­ ÀÛ¾÷Àº À̰÷º¸´Ù´Â ¿©ÀüÈ÷ Page_Load ¿¡¼­ ÇØ°áÇÏ´Â °ÍÀÌ ÁÁÀ» °ÍÀÔ´Ï´Ù. ^^

Á¤¸®ÇÏÀÚ¸é, Page_PreRender À̺¥Æ® ÇÔ¼ö´Â

    - ÆäÀÌÁö Ãâ·ÂÀÛ¾÷À» À§ÇÑ ¸¶Áö¸· ±¸¿ªÀ̸ç,
    - ¹ÙÀεùÀ» À§ÇÑ ÃÖÀûÀÇ Àå¼Ò¶ó°í º¼ ¼ö ÀÖ½À´Ï´Ù.

ÀÌÁ¦ ÀÌ À̺¥Æ®¸¦ ÀÌ¿ëÇØ¼­ ¿©·¯ºÐÀÇ ÆäÀÌÁö¸¦ Á» ´õ È¿°úÀûÀ¸·Î ²Ù¸çº¸¼¼¿ä. ^^

Å¿À¿´¾î¿ä~~~

 

°­Á ¸ñ·ÏÀ¸·Î..