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

Taeyo's ASP.NET

   °­Á ÃÖÃÊ ÀÛ¼ºÀÏ : 2003³â 07¿ù 10ÀÏ
   °­Á ÃÖÁ¾ ¼öÁ¤ÀÏ : 2003³â 07¿ù 25ÀÏ

   °­Á ÀÐÀ½ ¼ö : ȸ

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

   °­Á Á¦¸ñ : DataList Control (2)

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

³¯¾¾°¡ ¹«´þ³×¿ä...  ¹öÁö´Ï¾Æ¿¡´Â ¹ú½á ÄÚ½º¸ð½º°¡ ÇǾúÀ½¿¡µµ.. ³¯¾¾´Â ¹«´þ½À´Ï´Ù.
µ¿ºÎ Áö¿ªÀ̶ó.... ±âÈİ¡ Çѱ¹°ú °ÅÀÇ °°°Åµç¿ä....
°Ü¿ì 3´Þ ³ª¿ÍÀÖ¾ú´Âµ¥µµ... Çѱ¹¿¡ ÀÖ´Â °¡Á·°ú Ä£±¸µéÀÌ ±×¸³³×¿ä..  ¤Ð_¤Ð
´ÙÀ½ ´Þ¿¡´Â µ¹¾Æ°¡´Ï±ñ...  µ¹¾Æ°¡¸é »ç¶÷µéÀ» ½ÇÄÆ ¸¸³ªº¼¶ø´Ï´Ù. ÇÏÇÏÇÏ...

¸ðµÎµé Áñ°Å¿î ÇÁ·Î±×·¡¹Ö µÇ¼¼¿ä ^^


´ë»ó : ASP.NETÀÇ ±âº»ÀûÀÎ ÄÁÆ®·Ñ »ç¿ë¹ýÀ» ¶¾ À̵é.
¼±¼öÁö½Ä : ADO.NET ±âº» Áö½Ä.

Àú¹ø °­Á´ Àç¹ÌÀÖÀ¸¼Ì½À´Ï±î? ¾Æ¹«·¡µµ... Á¦ ASP.NET Ã¥ÀÇ ÀϺθ¦ ÆíÁýÇØ¼­ ¿Ã¸®´Â °ÍÀÌ¶ó ¹®Ã¼°¡ Á¶±ÝÀº µüµüÇÑ °¨ÀÌ ¾øÁö´Â ¾Ê½À´Ï´Ù¸¸.. ±×·¡µµ Àç¹ÌÀÖÀ¸¼ÌÀ¸¸®¶ó ¹Ï¾î ÀǽÉÄ¡ ¾Ê¾Æº¸·Á ÇÒ±î¿ä? -_-+

Àç¹ÌÀÖÀ¸¼Ì´ø, Àç¹Ì°¡ ¾øÀ¸¼Ì´ø °­Á´ °è¼ÓµË´Ï´Ù....
±×°Íµµ ÂÞ~¿í ¸»ÀÔ´Ï´Ù. (°©ÀÚ±â Á¦°¡ Á» »·»·ÇÏ´Ù´Â »ý°¢ÀÌ... ¤Ð_¤Ð)

Command °ü·Ã À̺¥Æ®µé

ÀÌÁ¦ ²Ï³ª Àç¹ÌÀÖ´Â »ç½ÇÀ» Çϳª ¾Ë·Áµå¸®µµ·Ï ÇϰڽÀ´Ï´Ù. ÇÖÇÖÇÖ... ±×°ÍÀÌ ¹«¾ùÀ̳Ä? ¹Ù·Î ±×°ÍÀÌ Á¦°¡ [º¯°æ] ¹öư ÄÁÆ®·ÑÀÇ CommandName °ªÀ¸·Î "edit"¸¦ ÁØ ÁøÁ¤ÇÑ ÀÌÀ¯ÀÔ´Ï´Ù. »ç½Ç, DataList ÄÁÆ®·ÑÀº ÀÌ¹Ì Á¦°øÇϰí ÀÖ´Â 5°¡Áö Á¤µµÀÇ À̺¥Æ®°¡ ÀÖ¾î¿ä. ±× Áß¿¡ Çϳª°¡ ÀÌ¹Ì ¿ì¸®°¡ »ç¿ëÇØ º» ItemCommand À̺¥Æ® Àä, ÀÌ´Â ÄÁÆ®·Ñ ³»ºÎ¿¡ À§Ä¡ÇÑ ¾î¶°ÇÑ ¹öư ÄÁÆ®·ÑÀÌ Å¬¸¯µÇ´øÁö ¼öÇàµÇ´Â À̺¥Æ®ÀÔ´Ï´Ù. ÇÏÁö¸¸, À̰ÍÀÌ Áö¿øµÇ´Â ±â´É ¹× À̺¥Æ®ÀÇ ÀüºÎ´Â ¾Æ´Ñ °ÍÀÔ´Ï´Ù. (µÎµÕ~) DataList´Â ¾ÆÀÌÅÛÀÇ ¼öÁ¤°ú »èÁ¦ µîÀÇ ÀÛ¾÷À» ¼ö¿ùÇÏ°Ô Çϱâ À§ÇÑ ¿©·¯ °¡Áö Ãß°¡ÀûÀÎ À̺¥Æ®µéµµ Á¦°øÇØ ÁÖ°í Àְŵç¿ä. ¿¹¸¦ µé¸é, ±×µéÀº ´ÙÀ½°ú °°¾Æ¿ä.

À̺¥Æ® ¼³¸í
CancelCommand DataList ÄÁÆ®·Ñ¿¡ ÀÖ´Â ¾ÆÀÌÅÛ¿¡¼­ CommandNameÀ¸·Î cancelÀ» °®´Â ¹öưÀ» Ŭ¸¯ÇÒ °æ¿ì ¹ß»ýÇÏ´Â À̺¥Æ®
DeleteCommand DataList ÄÁÆ®·Ñ¿¡ ÀÖ´Â ¾ÆÀÌÅÛ¿¡¼­ CommandNameÀ¸·Î delete¸¦ °®´Â ¹öưÀ» Ŭ¸¯ÇÒ °æ¿ì ¹ß»ýÇÏ´Â À̺¥Æ®
EditCommand DataList ÄÁÆ®·Ñ¿¡ ÀÖ´Â ¾ÆÀÌÅÛ¿¡¼­ CommandNameÀ¸·Î edit¸¦ °®´Â ¹öưÀ» Ŭ¸¯ÇÒ °æ¿ì ¹ß»ýÇÏ´Â À̺¥Æ®
ItemCommand DataList ÄÁÆ®·Ñ¿¡ ÀÖ´Â ¾ÆÀÌÅÛ¿¡¼­ ¾î¶°ÇÑ ¹öưÀ̵çÁö Ŭ¸¯µÉ °æ¿ì ¹ß»ýÇÏ´Â À̺¥Æ®
UpdateCommand DataList ÄÁÆ®·Ñ¿¡ ÀÖ´Â ¾ÆÀÌÅÛ¿¡¼­ CommandNameÀ¸·Î update¸¦ °®´Â ¹öưÀ» Ŭ¸¯ÇÒ °æ¿ì ¹ß»ýÇÏ´Â À̺¥Æ®

Ç¥¸¦ Àß »ìÆìº¸¸é, DataList ÄÁÆ®·Ñ ³»ºÎ¿¡ ¹öư ÄÁÆ®·ÑÀÌ Á¸ÀçÇÒ °æ¿ì, ±× ¹öư ÄÁÆ®·ÑÀÇ CommandName¿¡ µû¶ó 4°¡Áö Á¤µµÀÇ À̺¥Æ®°¡ ´õ Áö¿øµÈ´Ù´Â °ÍÀ» ¾Ë ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù. Áï, Á» ÀüÀÇ ¿¹Á¦¿Í °°ÀÌ CommandNameÀ¸·Î "edit" ¶ó´Â °ªÀ» °®´Â ¹öưÀÌ Å¬¸¯µÈ´Ù¸é, EditCommand ¶ó´Â À̺¥Æ®µµ ¹ß»ýÇÑ´Ù´Â °ÍÀÌÁö¿ä. ±×·¯¹Ç·Î, »ç½Ç "edit"¶ó´Â CommandName ¼Ó¼º °ªÀ» °®´Â ¹öưÀÌ Å¬¸¯µÇ¾úÀ» °æ¿ìÀÇ Ã³¸®´Â ItemCommand °¡ ¾Æ´Ñ EditCommand ¿¡¼­ ÇÏ´Â °ÍÀÌ º¸´Ù È¿°úÀûÀÌ¶ó º¼ ¼ö ÀÖ´Ù´Â °ÍÀ̿ɴϴÙ. ±×·¸´Ù¸é, ¼Ò½º¸¦ ±×·¸°Ô Çѹø ¹Ù²Ù¾î º¸µµ·Ï ÇØ¿ä.

EditCommand

À¥ Æû µðÀÚÀÎ ¸ðµå·Î °¡¼­ DataList¸¦ ¼±ÅÃÇÑ ´ÙÀ½ [¼Ó¼º â]¿¡¼­ ¹ø°³ ¸ð¾çÀÇ ¹öưÀ» Ŭ¸¯ÇÑ µÚ, Ãâ·ÂµÇ´Â À̺¥Æ®µé Áß¿¡¼­ EditCommand¸¦ ¼±ÅÃÇϰí, ¿ìÃø Ä­¿¡¼­ ´õºí Ŭ¸¯À» ÇϽʴϴç.

±×·¯¸é, ÄÚµå ºñÇÏÀÎµå ÆäÀÌÁö·Î ÀúÀý·Î À̵¿Çϸ鼭, ÀÚµ¿À¸·Î DataList1_EditCommand À̺¥Æ® 󸮱Ⱑ »ý¼ºµÇ¾îÁ® ÀÖÀ» °Å¿¹¿ä. ÀÌ¹Ì ¾ð±ÞÇßµíÀÌ, ÀÌ´Â DataList ³»ÀÇ ¹öư ÄÁÆ®·Ñ Áß CommandName¼Ó¼ºÀÇ °ªÀ¸·Î "edit"¸¦ °®´Â ¹öư ÄÁÆ®·ÑÀÌ ´­·ÈÀ» °æ¿ì ¹ß»ýÇÏ´Â À̺¥Æ®ÀÔ´Ï´Ù. ±×·¸´Ù¸é, ÀÌÁ¦ ÀÌ °÷¿¡ ´ÙÀ½°ú °°Àº Äڵ带 ÀÛ¼ºÇØ º¸µµ·Ï Çϼ¼¿ä.(±×¸®°í, ±âÁ¸¿¡ ItemCommand¿¡ ÀÛ¼ºÇÑ edit¿Í °ü°èµÈ if ¹®Àº Á¦°ÅÇϵµ·Ï ÇϽÿɼҼ­~~)

private void DataList1_EditCommand(object source,
    System.Web.UI.WebControls.DataListCommandEventArgs e)
{
    DataList1.EditItemIndex = e.Item.ItemIndex;
    BindDataList();
}

private void DataList1_ItemCommand(object source,
    System.Web.UI.WebControls.DataListCommandEventArgs e)
{
    DataList1.SelectedIndex = e.Item.ItemIndex;
    BindDataList();
}

¾ÆÁÖ ÀßÇß¾î¿ä. Âü ÀßÇß¾î¿ä~~~  ¿À¿Ê? ´À³¢½º·´´Ù?? ±×·¸´Ù¸é, ¾î¼­ ¼­µÑ·¯ ÄÄÆÄÀÏÇÏ°í °á°ú¸¦ È®ÀÎÇØ º¸µµ·Ï Çϼ¼¿ä. ´À³¢ÇÔÀ» ³¯·Á¹ö¸®±â À§Çؼ­¶óµµ ¸»ÀÔ´Ï´Ù. ^^;

Àß µ¿ÀÛÇÏÁÒ? ±×·¸½À´Ï´Ù. ÇÏÁö¸¸, ¹º°¡ ÀÌ»óÇÑ Á¡Àº ´À²¸ÁöÁö ¾Ê³ª¿ä? ¿©·¯ ¾ÆÀÌÅÛÀ» ¹ø°¥¾Æ °¡¸é¼­, [º¯°æ] ¹öưÀ» Ŭ¸¯ÇØ º¸¼¼¿ä. ¾ÆÀÌÅÛÀÌ ÆíÁý ¸ðµå·Î ¹Ù²î´Â °Í »Ó ¾Æ´Ï¶ó, ¼±Åà ¸ðµåµµ °°ÀÌ Àû¿ëµÇ°í ÀÖ´Â °ÍÀ» È®ÀÎÇÒ ¼ö ÀÖÀ» °Ì´Ï´Ù. ÀÌ°Ô ¿Ø ÀÏÀÌ·¡~~~ -_-+ ÇÏÁö¸¸, »ç½Ç ±×·² ¼ö ¹Û¿¡ ¾ø´ä´Ï´Ù. DataList ÄÁÆ®·Ñ ³»ÀÇ ¸ðµç ¹öư ÄÁÆ®·ÑÀº Ŭ¸¯ ½Ã ¹«Á¶°Ç ±âº»ÀûÀ¸·Î ItemCommand À̺¥Æ®µµ È£ÃâÇϱ⠶§¹®ÀÌÁö¿ä.

Áï, ¹Ù²ï ÄÚµå´ë·Î¶ó¸é CommandName °ªÀÌ "edit"ÀÎ ¹öưÀÌ ´­¸± °æ¿ì, ÀÏ´Ü ¹«Á¶°ÇÀûÀ¸·Î ItemCommand À̺¥Æ®°¡ ¼öÇàµÇ°í, À̾ EditCommand°¡ ¼öÇàµÈ´Ù´Â °ÍÀÔ´Ï´Ù. ±×¸®°í, °¢°¢ÀÇ À̺¥Æ® 󸮱⳻¿¡¼­´Â °¢°¢ BindDataList() ÇÔ¼ö¸¦ È£ÃâÇϰí Àֱ⿡, °á°úÀûÀ¸·Î µÎ ¹øÀÇ µ¥ÀÌÅÍ ¹ÙÀεùÀÌ ÀϾ°í ÀÖ´Â °ÍÀ̱¸¿ä. À̰ÍÀº ºñÈ¿À²ÀûÀÌÁö ¾ÊÀ» ¼ö ¾øÀݽÀ´Ï²¥~~~. ÇØ¼­, ÀÌ ¼Ò½º¸¦ Á¶±Ý ´õ È¿°úÀûÀ¸·Î ¹Ù²Ù´Â ¹æ¹ýÀº ´ÙÀ½°ú °°¾Æ¿ä.

¿ì¼±, ItemTemplate ³»ÀÇ [¼±ÅÃ] ¹öư ÄÁÆ®·Ñ¿¡°Ôµµ CommandNameÀ» ºÎ¿©ÇÕ´Ï´Ù. ´ÙÀ½°ú °°ÀÌ ¸»ÀÌÁÒ.

        <p>
            <asp:Button Runat="server" Text="¼±ÅÃ" CommandName="select"></asp:Button>
            <asp:Button Runat="server" Text="º¯°æ" CommandName="edit"></asp:Button>
        </p>
    </DIV>
</ItemTemplate>

±×¸®°í, °¢°¢ÀÇ À̺¥Æ® ÇÔ¼ö¸¦ ´ÙÀ½°ú °°ÀÌ º¯°æÇÕ´Ï´Ù

private void DataList1_ItemCommand(object source,
    System.Web.UI.WebControls.DataListCommandEventArgs e)
{
    if (e.CommandName == "select")
    {
        DataList1. EditItemIndex = -1;
        DataList1.SelectedIndex = e.Item.ItemIndex;
        BindDataList();
    }
}

private void DataList1_EditCommand(object source,
    System.Web.UI.WebControls.DataListCommandEventArgs e)
{
    DataList1. SelectedIndex = -1;
    DataList1.EditItemIndex = e.Item.ItemIndex;
    BindDataList();
}

ÀÌ·¸°Ô ¹Ù²Ù¸é, ItemCommand À̺¥Æ® 󸮱âÀÇ ÄÚµå´Â ¹öư ÄÁÆ®·ÑÀÇ CommandName °ªÀÌ "select"ÀÎ °æ¿ì¿¡¸¸ µ¿ÀÛÇÏ°Ô µÉ °ÍÀ̸ç, CommandName °ªÀÌ "edit"ÀÎ °æ¿ì¿¡´Â ¹«½ÃµÉ °ÍÀ̱⿡ º¸´Ù È¿°úÀûÀ̶ó°í º¼ ¼ö ÀÖ½À´Ï´Ù.

±×¸®°í, ¼Ò½º¿¡¼­´Â CommandName °ªÀÌ "select" ÀÎ °æ¿ì¿¡´Â DataListÀÇ EditItemIndex °ªÀ» -1·Î ºÎ¿©Çϰí ÀÖÀ¸¸ç, CommandName °ªÀÌ "edit" ÀÎ °æ¿ì¿¡´Â DataListÀÇ SelectedIndex °ªÀ» -1·Î ºÎ¿©Çϰí Àִµ¥¿ä, ÀÌ -1 À̶ó´Â °ªÀº °¢°¢ÀÇ ¼³Á¤À» Ãë¼ÒÇϰڴٴ ÀǹÌÀÔ´Ï´Ù. Áï, ¾î¶² ¾ÆÀÌÅÛÀÌ [¼±ÅÃ]µÇ¾úÀ» °æ¿ì¿¡´Â ±âÁ¸¿¡ [º¯°æ] ¸ðµå·Î Á¸ÀçÇÏ´ø ¾ÆÀÌÅÛÀ» ¿ø·¡ÀÇ »óÅ·ΠµÇµ¹¸®°Ú´Ù´Â °ÍÀ» ÀǹÌÇÏ´Â °ÍÀ̱¸¿ä, ¾î¶² ¾ÆÀÌÅÛÀÌ [º¯°æ]µÇ´Â °æ¿ì¿¡´Â ±âÁ¸¿¡ [¼±ÅÃ] ¸ðµå·Î Á¸ÀçÇÏ´ø ¾ÆÀÌÅÛÀ» ¿ø·¡ÀÇ »óÅ·ΠµÇµ¹¸®°Ú´Ù´Â °ÍÀ» ÀǹÌÇÏ´Â °ÍÀÔ´Ï´Ù. ¸¸ÀÏ, ÀÌ·¯ÇÑ Äڵ带 Ãß°¡ÇÏÁö ¾ÊÀ¸¸é, °á°ú È­¸é¿¡¼­ [¼±ÅÃ]°ú [º¯°æ]ÀÌ °¢°¢ µû·Î ³ë´Â °ÍÀ» º¼ ¼ö ÀÖÀ» °Å¿¹¿ä.

ÀÌÁ¦, ¹öưÀÇ CommandNameÀÌ edit ÀÎ °æ¿ì¿¡´Â ItemCommand À̺¥Æ®ÀÇ ³»ºÎ 󸮴 °Ç³Ê¶Ù°Ô µÉ °ÍÀ̰í, EditCommand ÀÇ Ã³¸®¿¡¸¸ ÁýÁßÇÏ°Ô µÉ °ÍÀÔ´Ï´Ù. ±×¸®°í, ¹öưÀÇ CommandNameÀÌ select ÀÎ °æ¿ì¿¡´Â ItemCommand ³»ºÎÀÇ Ã³¸®¿¡¸¸ ÁýÁßÇÏ°Ô µÉ °ÍÀÌ°í ¸»ÀÔ´Ï´Ù. ±×·¸½À´Ï´Ù. °èȹÇÑ ´ë·Î µ¿ÀÛÇÏ°Ô ¸¸µç °ÍÀÌÁÒ~~~

UpdateCommand

ÁÁ½À´Ï´Ù. ÁÁ±¸¿ä~~ À̹ø¿¡´Â ³²¾ÆÀÖ´Â 3°³ÀÇ À̺¥Æ®¸¦ Çѹø¿¡ ´Ù·ç¾î º¸µµ·Ï ÇØ¿ä. CancelCommand, DeleteCommand, UpdateCommand °¡ ¹Ù·Î ±×°ÍÀä, À̵éÀº °¢°¢ "cancel", "delete", "update" ¶õ CommandNameÀ» °¡Áø ¹öưÀÌ Å¬¸¯µÉ °æ¿ì È£ÃâµÇ´Â À̺¥Æ®¶ó´Â °ÍÀ» ±â¾ïÇϼ¼¿ä. ¹°·Ð, °¢°¢ÀÇ À̺¥Æ®°¡ È£ÃâµÇ±â Àü¿¡ À̵éÀº ºÐ¸í ItemCommand À̺¥Æ®µµ °ÅÄ¡°Ô µÉ °ÍÀÔ´Ï´Ù. À̵鵵 ¸ðµÎ ¹öư ÄÁÆ®·ÑÀÌ´Ï ¸»ÀÔ´Ï´Ù. ÇÏÁö¸¸, ItemCommand À̺¥Æ® ³»ÀÇ ½ÇÁ¦ 󸮴 CommandNameÀÌ selectÀÎ °æ¿ì¿¡¸¸ ¼öÇàµÉ °ÍÀ̱⿡, ItemCommand À̺¥Æ® 󸮱⳻ÀÇ ÄÚµåµé¿¡ ´ëÇØ¼­´Â ÀÌÁ¦ ´õ ÀÌ»ó ½Å°æÀ» ¾µ Çʿ䰡 ¾ø½À´Ï´Ù. ±×·¸°ÚÁÒ? 

cancel, update, delete ¶ó´Â ¾÷¹«´Â [º¯°æ] ¸ðµå¿¡¼­ ¼öÇàµÇ¾î¾ß ÇÒ ÀÛ¾÷µéÀÔ´Ï´Ù. ±×·¯¹Ç·Î, ÀÌ·¯ÇÑ ¹öưÀÌ À§Ä¡ÇØ¾ß ÇÒ °÷Àº [º¯°æ] ¸ðµåÀÎ EditItemTemplate ³»ºÎ°¡ µÇ¾î¾ß ÇÒ °ÍÀ̶ó´Â °ÍÀº ¾î·ÆÁö ¾Ê°Ô ¿¹»óÇÏ½Ç ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù. ´ÙÀ½°ú °°Àº Äڵ带 EditItemTemplate¿¡ Ãß°¡·Î ÀÛ¼ºÇØ º¸µµ·Ï Çϼ¼¿ä. (Âü°í·Î, ÀÌ ¸ðµç 󸮰¡ Ãß°¡µÈ ÄÚµå´Â ´Ù¿î·Îµå ¹ÞÀº ÆÄÀÏ Áß¿¡¼­ DataListEx1plus4.aspx¶ó´Â À̸§À¸·Î Á¦°øµÇ°í ÀÖ½À´Ï´Ù)

    <EditItemTemplate>
        <DIV>
            <IMG hspace="10" align="left" src='http://localhost/quickstart/ASPPlus/images/Title-
                <%# DataBinder.Eval(Container.DataItem, "title_id") %>.gif' >
            Á¦¸ñ :
            <asp:TextBox Runat="server" BorderStyle="Groove" width="250" ID="title"
                NAME="title" Text='<%# DataBinder.Eval(Container.DataItem, "title") %>'>
            </asp:TextBox>
            <BR>
            °¡°Ý :
            <asp:TextBox Runat="server" BorderStyle="Groove" ID="price" NAME=" price "
                Text='<%# DataBinder.Eval(Container.DataItem, "price") %>'></asp:TextBox>
            <BR>
         <asp:TextBox Runat="server" BorderStyle="Groove" TextMode="MultiLine" Rows="5"
                Width="300" Text='<%# DataBinder.Eval(Container.DataItem, "notes") %>'
                ID="notes" NAME=" notes "></asp:TextBox>
            <p>
                <asp:Button Runat="server" Text="¾÷µ¥ÀÌÆ®" CommandName="update"
              CommandArgument='<%# DataBinder.Eval(Container.DataItem, "title_id") %>'>
                </asp:Button>
                <asp:Button Runat="server" Text="»èÁ¦" CommandName="delete"
              CommandArgument='<%# DataBinder.Eval(Container.DataItem, "title_id") %>'>
                </asp:Button>
                <asp:Button Runat="server" Text="Ãë¼Ò" CommandName="cancel"
              CommandArgument='<%# DataBinder.Eval(Container.DataItem, "title_id") %>'>
                </asp:Button>
            </p>
        </DIV>
    </EditItemTemplate>

°¢°¢ÀÇ ¹öưÀÌ ÀÚ½ÅÀÇ ¾ÆÀÌÅÛ¿¡ ÇØ´çÇÏ´Â title_id °ªÀ» CommandArgument·Î ¼³Á¤Çϰí ÀÖ´Â °ÍÀ» Àß ±â¾ïÇϱ⠹ٷ¡¿ä. °¢°¢ÀÇ ¹öưÀÌ Å¬¸¯µÉ °æ¿ì, ¾î¶² Ã¥ÀÌ ¾÷µ¥ÀÌÆ® ¹× »èÁ¦µÇ¾î¾ß ÇÏ´ÂÁö¸¦ ¼­¹ö¿¡¼­ ¾Ë ¼ö ÀÖÀ¸·Á¸é ±× °ª(title_id)À» ¼­¹ö·Î ³Ñ°ÜÁÙ ¼ö ÀÖ¾î¾ß ÇÒ °ÍÀ̰í, ±×¸¦ À§ÇÑ ÃÖÀûÀÇ Àå¼Ò´Â ¹öư ÄÁÆ®·ÑÀÇ CommandArgumentÀ̱⠶§¹®ÀÔ´Ï´Ù. ¶ÇÇÑ, ¼­¹öÃøÀÇ XXXCommand À̺¥Æ® Äڵ忡¼­µµ ¹öư ÄÁÆ®·ÑÀÇ CommandName °ª°ú CommandArgument °ªÀº ½±°Ô ¾ò¾î³¾ ¼ö Àֱ⠶§¹®¿¡ °¢ Ã¥ÀÇ title_id °ªÀº ¹öưÀÇ CommandArgument·Î¼­ ÁÖ´Â °ÍÀÌ ¹Ù¶÷Á÷ÇÒ °ÍÀ̱⵵ ÇÕ´Ï´Ù. ÀÏ´Ü, ÇöÀçÀÇ »óÅ¿¡¼­ ÆäÀÌÁö¸¦ ÄÄÆÄÀÏÇÏ°í °á°ú¸¦ »ìÆìº¸µµ·Ï ÇÏÁÒ. [º¯°æ] ¹öưÀÌ Å¬¸¯µÉ °æ¿ì, ÀÌ·¯ÇÑ ¹öưµéÀº ³ªÅ¸³¯ °ÍÀ̶ø´Ï´Ù. ´ÙÀ½°ú °°ÀÌ ¸»ÀÌÁÒ ^^

ÇÏÁö¸¸, ¿ì¸®´Â ¾ÆÁ÷ °¢°¢ÀÇ ¹öưÀÌ Å¬¸¯µÇ¾úÀ» °æ¿ì¿¡ÀÇ Ã³¸®´Â ÀÛ¼ºµÇÁö ¾Ê¾Ò½À´Ï´Ù. ±×°ÍÀ» Áö±ÝºÎÅÍ Çϳª¾¿ ÀÛ¼ºÇØ ³ª°¡º¸µµ·Ï ÇØ¿ä. ½ÃÀÛÀº UpdateCommand·Î ÇϰڽÀ´Ï´Ù. À¥ Æû µðÀÚÀÎ ¸ðµå·Î °¡¼­ DataList¸¦ ¼±ÅÃÇÑ ´ÙÀ½ [¼Ó¼º â]¿¡¼­ ¹ø°³ ¸ð¾çÀÇ ¹öưÀ» Ŭ¸¯ÇÑ µÚ, Ãâ·ÂµÇ´Â À̺¥Æ®µé Áß¿¡¼­ UpdateCommand¸¦ ¼±ÅÃÇϰí, ¿ìÃø Ä­¿¡¼­ ´õºí Ŭ¸¯À» Çϼ¼¿ä. (¾Æ±¸.. º¹ÀâÇÏÁÒ???  ^^)

±×·¯¸é, ÄÚµå ºñÇÏÀÎµå ÆäÀÌÁö·Î À̵¿Çϸç, ÀÚµ¿À¸·Î DataList1_UpdateCommand À̺¥Æ® 󸮱Ⱑ »ý¼ºµÇ¾îÁ® ÀÖÀ» °ÍÀÔ´Ï´Ù. ÀÌ¹Ì ¾ð±ÞÇßµíÀÌ, ÀÌ´Â DataList ³»ÀÇ ¹öư ÄÁÆ®·Ñ Áß CommandName¼Ó¼ºÀÇ °ªÀ¸·Î "update"¸¦ °®´Â ¹öư ÄÁÆ®·ÑÀÌ ´­·ÈÀ» °æ¿ì ¹ß»ýÇÏ´Â À̺¥Æ®ÀÔ´Ï´Ù. ÀÚ... ÀÌÁ¦ ÀÌ °÷¿¡ ´ÙÀ½°ú °°Àº Äڵ带 ÀÛ¼ºÇØ º¸µµ·Ï Çսôٿä~

    private void DataList1_UpdateCommand(object source,
        System.Web.UI.WebControls.DataListCommandEventArgs e)
    {
        string title = ((TextBox)e.Item.FindControl("title")).Text;
        string price = ((TextBox)e.Item.FindControl("price")).Text;
        string notes = ((TextBox)e.Item.FindControl("notes")).Text;
        string title_id = (string)e.CommandArgument;

        string strSQL = "UPDATE Titles SET title=@title, price=@price, notes=@notes "
            + " WHERE title_id=@title_id";

        SqlConnection Con = new SqlConnection(connectStr);
        SqlCommand Cmd = new SqlCommand(strSQL, Con);

        Cmd.Parameters.Add("@title", SqlDbType.VarChar, 80);
        Cmd.Parameters.Add("@price", SqlDbType.Money);
        Cmd.Parameters.Add("@notes", SqlDbType.VarChar, 200);
        Cmd.Parameters.Add("@title_id", SqlDbType.VarChar, 6);

        Cmd.Parameters["@title"].Value = title;
        Cmd.Parameters["@price"].Value = price;
        Cmd.Parameters["@notes"].Value = notes;
        Cmd.Parameters["@title_id"].Value = title_id;

        Con.Open();
        Cmd.ExecuteNonQuery();
        Con.Close();

        DataList1.EditItemIndex = -1;
        BindDataList();
    }

Äڵ忡¼­ ½ÇÁ¦·Î µ¥ÀÌÅͺ£À̽º¿¡ ƯÁ¤ µ¥ÀÌÅ͸¦ Update ÇÏ´Â ºÎºÐÀº ¿©±â¼­ º°µµ·Î ¾ð±ÞÇÏÁö´Â ¾ÊÀ» °ÍÀÔ´Ï´Ù. ¿©·¯ºÐÀÌ ÀÌ¹Ì ADO.NETÀÇ »ç¿ë¹ý¿¡ ´ëÇÑ ¾î´ÀÁ¤µµÀÇ ³»°øÀÌ ÀÖ´Ù°í °¡Á¤Çϰí ÀÌ °­Á¸¦ ÁøÇàÇϰí Àֱ⠶§¹®ÀÌÁö¿ä. ^^ (¾çÇØÇØ ÁÖ¼¼¿ä. ADO.NETÀÇ »ç¿ë¹ý¿¡ ´ëÇØ¼­´Â ³ªÁß¿¡ º°µµ·Î ´Ù·ç¾îº¸´Â ½Ã°£À» °®µµ·Ï ÇÒÅ״ϱî¿ä ^^)

ÀÌ ¿¹Á¦¿¡¼­ÀÇ ¹®Á¦´Â »ç¿ëÀÚ°¡ ÅØ½ºÆ®¹Ú½º¿¡ º¯°æÇÑ °ªÀ» ¾î¶»°Ô °¡Á®¿À´À³Ä!! ÀÔ´Ï´Ù. °¢ ÄÁÆ®·ÑÀÇ °íÀ¯ÇÑ ID´Â µ¿ÀûÀ¸·Î Àç ¼³Á¤µÇ±â¿¡ ÇÁ·Î±×·¡¹Ö Äڵ忡¼­ °¢°¢ÀÇ ÄÁÆ®·ÑÀ» ID·Î ã¾Æ µé¾î°¡´Â °ÍÀº ¸Å¿ì ¾î·Á¿î ÆíÀÔ´Ï´Ù. ±×·¸´Ù¸é, ¾î¶»°Ô ÇØ¾ß ÇÒ±î¿ä? ¾Ë°íº¸¸é ¸ðµç °ÍÀº °£´ÜÇÏÁö¿ä ^^. ±× ¸ðµç ÇØ°á¹æ¹ýÀ» ¸Þ¼­µåÀÇ ÀÎÀÚÀÎ DataListCommandEventArgs °³Ã¼°¡ Á¦°øÇØ Áִϱî¿ä.

DataListCommandEventArgs °³Ã¼ÀÇ Item ¼Ó¼ºÀº ÇöÀç ¾ÆÀÌÅÛ ÀÚü¸¦ ³ªÅ¸³»°í ÀÖ´Â °³Ã¼À̸ç, ±× Item °³Ã¼´Â FindControl À̶ó´Â À¯¿ëÇÑ ¸Þ¼­µå¸¦ Á¦°øÇÑ´ä´Ï´Ù. ÀÌ´Â ÇöÀçÀÇ ¾ÆÀÌÅÛ(Áï, ÅÛÇø´) ³»¿¡¼­ ƯÁ¤ À̸§À» °®´Â ÄÁÆ®·ÑÀ» ã¾Æ¿À´Â ¿ªÇÒÀ» Çϱ⿡, e.Item.FindControl("ÄÁÆ®·ÑÀÇ À̸§") °ú °°Àº Äڵ带 ÅëÇØ¼­ ÇØ´ç ÄÁÆ®·ÑÀÇ ÂüÁ¶¸¦ ½±°Ô ¾ò¾î¿Ã ¼ö°¡ ÀÖ¾î¿ä. ´Ü, ±× ÄÁÆ®·ÑÀº Control ŸÀÔÀ¸·Î ³Ñ¾î¿À±â¿¡ À̸¦ »ç¿ëÇϱâ Àü¿¡´Â ¹Ýµå½Ã ÀÚ½ÅÀÇ Á¤È®ÇÑ Å¸ÀÔÀ¸·Î Çü º¯È¯À» ½ÃÄÑÁØ ´ÙÀ½ »ç¿ëÇÒ Çʿ䰡 ÀÖ´Ù´Â Á¡Àº ÁÖÀÇÇÏ¼Å¾ß ÇÕ´Ï´Ù.

ÇØ¼­, ¼Ò½º Áß¿¡ ÀÖ´Â ((TextBox)e.Item.FindControl("title"))¶ó´Â ÄÚµå´Â ÇöÀç »ç¿ëÀÚ°¡ À̺¥Æ®¸¦ ¹ß»ý½ÃŲ Ç׸ñ(¾ÆÀÌÅÛ)¿¡¼­ title À̶ó´Â À̸§À» °®´Â ÄÁÆ®·ÑÀ» ãÀº ´ÙÀ½, Áï e.Item.FindControl("title") ¸¦ ¼öÇàÇÑ ´ÙÀ½ ±× ÄÁÆ®·ÑÀ» TextBox ŸÀÔÀ¸·Î Çüº¯È¯ ÇÏ´Â ÄÚµåÀÎ °ÍÀÔ´Ï´Ù. ±×·¯¹Ç·Î, ÀÌ·± ½ÄÀ¸·Î °¢°¢ÀÇ TextBox¿¡ ÀÔ·ÂµÈ °ªÀ» ¾ò¾î¿Ã ¼ö ÀÖ´Â °ÍÀÌÁÒ.

string title = ((TextBox)e.Item.FindControl("title")).Text;
string price = ((TextBox)e.Item.FindControl("price")).Text;
string notes = ((TextBox)e.Item.FindControl("notes")).Text;

ÇÏÁö¸¸, ÇöÀç ¾ÆÀÌÅÛÀÇ title_idÀÇ °ªÀº Á» ´õ ½±°Ô ¾ò¾î³¾ ¼ö Àִµ¥¿ä, ÀÌ´Â ¿ì¸®°¡ ±× °ªÀ» ¹öư ÄÁÆ®·ÑÀÇ CommandArgument·Î ÁöÁ¤ÇØ µÎ¾ú±â ¶§¹®ÀÔ´Ï´Ù. ¹öư ÄÁÆ®·ÑÀÇ CommandName°ú CommandArgumentÀº ¼­¹öÃø À̺¥Æ® ¸Þ¼­µåÀÇ µÎ ¹øÂ° ÀÎÀÚÀÎ DataListCommandEventArgs¸¦ ÅëÇØ¼­ ½±°Ô ¾ò¾î¿Ã ¼ö°¡ ÀÖ¾î¿ä. ´ÙÀ½°ú °°ÀÌ ¸»ÀÌÁÒ.

string title_id = (string)e.CommandArgument;

°¢°¢ÀÇ °ªµéÀ» ¸ðµÎ ¾ò¾î³Â´Ù¸é, ÀÌÈÄÀÇ ÀÛ¾÷Àº µ¥ÀÌÅͺ£À̽º¸¦ ¿­°í, UPDATE ÁúÀǸ¦ ¼öÇàÇÏ´Â °ÍÀÔ´Ï´Ù.  ¸ðµç µ¥ÀÌÅͺ£À̽º ÀÛ¾÷ÀÌ ³¡³µ´Ù¸é Connection °³Ã¼¸¦ Close ÇÏ°í ³­ ´ÙÀ½, ÇöÀç [º¯°æ] ¸ðµå·Î µÇ¾îÁ® ÀÖ´Â ¾ÆÀÌÅÛÀ» ¿ø·¡ÀÇ ¸ðµå·Î µÇµ¹¸®±â À§Çؼ­ ´ÙÀ½°ú °°ÀÌ EditItemIndex °ªÀ» -1·Î µÇµ¹¸®°í, µ¥ÀÌÅ͸¦ ´Ù½Ã±Ý ¹ÙÀεù ÇÏ¸é µË´Ï´Ù.

DataList1.EditItemIndex = -1;
BindDataList();

¸ðµÎ ÀÌÇØµÇ¾ú´Ù¸é, ÆäÀÌÁö¸¦ ÄÄÆÄÀÏÇÏ°í ½ÇÇàÇØº¸µµ·Ï Çϼ¼¿ä. ±×¸®°í, [º¯°æ] ¸ðµå¿¡¼­ µ¥ÀÌÅ͸¦ ÀûÀýÈ÷ ¼öÁ¤ÇÑ ´ÙÀ½, [update] ¹öưÀ» ´­·¯ ±× ³»¿ëÀÌ ½ÇÁ¦·Î º¯°æµÇ´ÂÁö È®ÀÎÇØ º¸µµ·Ï Çϼ¼¿ä. ¿ì¸®ÀÇ ±â´ë´ë·Î ¸Å¿ì Àß µ¿ÀÛÇÒ °ÍÀÓÀÌ ÀÚ¸íÇÕ´Ï´Ù. ^^

CancelCommand

ÀÌÁ¦´Â CancelCommand ºÎºÐÀ» Çѹø ´Ù·ç¾î º¸µµ·Ï ÇϰڽÀ´Ï´Ù. ÀÌÀü°ú °°Àº ¹æ¹ýÀ¸·Î À¥ Æû µðÀÚÀÎ ¸ðµå·Î °¡¼­ DataList¸¦ ¼±ÅÃÇÑ ´ÙÀ½ [¼Ó¼º â]¿¡¼­ ¹ø°³ ¸ð¾çÀÇ ¹öưÀ» Ŭ¸¯ÇÑ µÚ, Ãâ·ÂµÇ´Â À̺¥Æ®µé Áß¿¡¼­ CancelCommand¸¦ ¼±ÅÃÇϰí, ¿ìÃø Ä­¿¡¼­ ´õºí Ŭ¸¯À» Çϼ¼¿ä. ±×·¯¸é, ÄÚµå ºñÇÏÀÎµå ÆäÀÌÁö·Î À̵¿µÇ¸ç, ÀÚµ¿À¸·Î DataList1_DeleteCommand À̺¥Æ® 󸮱Ⱑ »ý¼ºµÇ¾îÁ® ÀÖÀ» °ÍÀÔ´Ï´Ù. ±× ±¸¿ª¿¡ ´ÙÀ½°ú °°Àº Äڵ带 ÀÛ¼ºÇØ º¸µµ·Ï ÇϰڽÀ´Ï´Ù.

    private void DataList1_CancelCommand(object source,
        System.Web.UI.WebControls.DataListCommandEventArgs e)
    {
        DataList1.EditItemIndex = -1;
        BindDataList();
    }

ÀÛ¾÷À» Ãë¼ÒÇÏ´Â cancel ÀÏ °æ¿ì´Â ¾î¶°ÇÑ ÀÛ¾÷µµ ÇÊ¿äÄ¡ ¾Ê½À´Ï´Ù. ´ÜÁö, ÇöÀç [º¯°æ] ¸ðµåÀÎ °ÍÀ» ±âÁ¸ÀÇ »óÅ·ΠµÇµ¹¸®±â¸¸ ÇÏ¸é µÇ´Â °ÍÀÌÁÒ. ÇØ¼­, ¼Ò½º´Â DataList ÀÇ EditItemIndex °ªÀ» -1·Î ¼³Á¤Çϰí, µ¥ÀÌÅÍ ¹ÙÀε带 ¹Ýº¹ÇÏ´Â °ÍÀÌ ÀüºÎÀÎ °ÍÀ̶ø´Ï´Ù.

DeleteCommand

¸¶Áö¸·À¸·Î, DeleteCommand ÀÇ Äڵ嵵 °°Àº ¹æ¹ýÀ¸·Î ÀÛ¼ºÇØ º¸µµ·Ï ÇϰڽÀ´Ï´Ù. [¼Ó¼º â]¿¡¼­ ¹ø°³ ¸ð¾çÀÇ ¹öưÀ» Ŭ¸¯ÇÑ µÚ, DeleteCommand¸¦ ¼±ÅÃÇϰí, ¿ìÃø Ä­¿¡¼­ ´õºí Ŭ¸¯À» Çϸé ÄÚµå ºñÇÏÀÎµå ÆäÀÌÁö·Î À̵¿ÇÒ °ÍÀ̸ç, ÀÚµ¿À¸·Î DataList1_DeleteCommand À̺¥Æ® 󸮱â´Â »ý¼ºµÇ¾îÁú °ÍÀÔ´Ï´Ù. ±âÁ¸°ú ¸¶Âù°¡Áö·Î ¸»ÀÔ´Ï´Ù ^^. 

ƯÁ¤ ·¹Äڵ带 »èÁ¦Çϱâ À§Çؼ­´Â ´ÜÁö ÇØ´ç ·¹ÄÚµåÀÇ ±âº» Ű Ä÷³ °ª¸¸À» ¾Ë¸é µÇ¸ç, titles Å×ÀÌºí¿¡¼­ÀÇ ±× Ű´Â title_id À̹ǷΠÀ̹øÀÇ ÄÚµå´Â ±×´ÙÁö Ưº°ÇÑ ³»¿ëÀº ¾ø½À´Ï´Ù. ±»ÀÌ ¼Ò½º¸¦ º¸¿©Áشٸé ÄÚµå´Â ´ÙÀ½°ú °°À» °Í °°³×¿ä. (±×·¯³ª, À̸¦ ÀÛ¼ºÇϱâ´Â Ç쵂 ½ÇÇàÇÏÁö´Â ¸»¾ÆÁÖ¼¼¿ä)

    private void DataList1_DeleteCommand(object source,
        System.Web.UI.WebControls.DataListCommandEventArgs e)
    {
        string title_id = (string)e.CommandArgument;

        string strSQL = "DELETE Titles WHERE title_id = @title_id";

        string connectStr = "Server=(local); database=Pubs; user id=sa";
        SqlConnection Con = new SqlConnection(connectStr);
        SqlCommand Cmd = new SqlCommand(strSQL, Con);

        Cmd.Parameters.Add("@title_id", SqlDbType.VarChar, 6);
        Cmd.Parameters["@title_id"].Value = title_id;

        Con.Open();
        Cmd.ExecuteNonQuery();
        Con.Close();

        DataList1.EditItemIndex = -1;
        BindDataList();
    }

Äڵ忡¼­ Ưº°È÷ »õ·Î¿î °ÍÀº ¾ø½À´Ï´Ù. ´ÜÁö, DELETE ÁúÀǸ¦ ¼öÇàÇÏ´Â °ÍÀÌ ÀüºÎÀÌÁö¿ä. ÇÏÁö¸¸, ÀÌ Äڵ带 ÀÛ¼ºÇÏ°í ¸·»ó ÆäÀÌÁö¸¦ ½ÇÇàÇÏ¿© ƯÁ¤ ¾ÆÀÌÅÛÀ» »èÁ¦ÇÏ·Á ÇÑ´Ù¸é ¿¹¿Ü°¡ ¹ß»ýÇÒ °Ì´Ï´Ù. ÀÌ´Â µ¥ÀÌÅͺ£À̽º Å×À̺íµéÀÇ °ü°è¼º¿¡ µû¸¥ ¹®Á¦·Î½á, titles Å×À̺íÀº ¿©·¯ ´Ù¸¥ Å×À̺íµé°ú °ü°è¸¦ ¸Î°í À־, ÇԺηΠtitles Å×À̺íÀÇ µ¥ÀÌÅ͸¦ »èÁ¦ÇÒ ¼ö°¡ ¾ø±â ¶§¹®¿¡ ¹ß»ýÇÏ´Â ¿¹¿ÜÀÔ´Ï´Ù. ÀÌ´Â Titles Å×À̺í ÀÚüÀÇ Æ¯¼ö¼ºÀ¸·Î ÀÎÇÑ ¹®Á¦ÀÌÁö ·ÎÁ÷»óÀÇ ¹®Á¦´Â ¾Æ´Ï¶ó´Â Á¡À» ¸»¾¸µå¸®°í ½Í³×¿ä ^^

ÇØ¼­, ½ÇÁ¦ Äڵ忡¼­´Â ÄÚµåÀÇ ¸¶Áö¸· ºÎºÐÀÎ ´ÙÀ½ ±¸¿ªÀ» Á¦¿ÜÇϰí´Â ¸ðµÎ ÁÖ¼®Ã³¸®¸¦ Çϵµ·Ï Çϰڽ¿´Ù.

DataList1.EditItemIndex = -1;
BindDataList();

C#¿¡¼­ÀÇ ÁÖ¼®Ã³¸®´Â °¢°¢ÀÇ ¶óÀÎ ¾Õ¿¡ // ¶ó´Â ¹®ÀÚ¸¦ ´Þ¾ÆÁÖ¸é µË´Ï´Ù. ȤÀº ºí·Ï ´ÜÀ§·Î ÁÖ¼®À» °É¾îÁÖ°í ½Í´Ù¸é /* */ ¸¦ »ç¿ëÇÒ ¼öµµ ÀÖ½À´Ï´Ù.

ÀÌÁ¦ ÆäÀÌÁö´Â ¿Ï¼ºµÇ¾ú½À´Ï´Ù. ¿©·¯ºÐÀº DataList¸¦ ÅëÇØ¼­ ¿øÇÏ´Â µ¥ÀÌÅ͵éÀÇ Ãâ·ÂÀ» ½±°Ô ¸¸µé¾î ³¾ ¼ö ÀÖÀ» °ÍÀ̸ç, °¢°¢ÀÇ ¾ÆÀÌÅÛÀ» ¼±ÅÃ, º¯°æ, ¾÷µ¥ÀÌÆ®, »èÁ¦ÇÒ ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù. ÃàÇÏÇÕ´Ï´Ù. ^^;

DataKeyField

ÀÌÁ¦ DataList ¿¡ ´ëÇÑ À̾߱⵵ ¾î´Àµ¡ ¸·¹ÙÁö¿¡ À̸£°í Àֳ׿ä. DataList¸¦ ¸¶¹«¸®ÇÏ´Â Â÷¿ø¿¡¼­ À̹ø¿¡´Â ÀÌ ÄÁÆ®·ÑÀÌ °¡Áö°í ÀÖ´Â ¼Ó¼º Áß ¸Å¿ì À¯¿ëÇÑ ¼Ó¼ºÀÎ DataKeyField¿¡ ´ëÇÑ À̾߱⸦ ÇØº¸µµ·Ï ÇϰڽÀ´Ï´Ù.

DataKeyField´Â ÁöÁ¤µÈ µ¥ÀÌÅÍ ¿øº»ÀÇ Å° °ªÀ» ÁöÁ¤Çϱâ À§Çؼ­ »ç¿ëµÇ´Â ¼Ó¼ºÀ¸·Î, À̸¦ »ç¿ëÇϸé ÅÛÇø´ ¾ÆÀÌÅÛ ³»¿¡ Ű °ªÀ» Ç¥½ÃÇϰųª ³ªÅ¸³»Áö ¾Ê°íµµ ±× Ű °ªÀ» »ç¿ëÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. Áï, °¢°¢ÀÇ ¾ÆÀÌÅÛÀÇ Æ¯Á¤ Ű Ä÷³ °ªÀ» DataList ³»¿¡ ³»ºÎÀûÀ¸·Î ÀúÀåÇØ ³õ°í »ç¿ëÇÒ ¼ö°¡ ÀÖ´Ù´Â À̾߱âÀÌÁö¿ä. Àß ÀÌÇØ°¡ °¡Áö ¾Ê³ª¿ä? ÷¿¡´Â ±×·² ¼ö ÀÖ½À´Ï´Ù. ±×·¸´Ù¸é ¿¹¸¦ µé¾îº¸µµ·Ï ÇϰڽÀ´Ï´Ù. À§ÀÇ ¿¹Á¦¿¡¼­ ƯÁ¤ ¾ÆÀÌÅÛÀÇ °ªµéÀ» º¯°æÇϰųª ȤÀº »èÁ¦ÇÒ °æ¿ì ¿ì¸®´Â ¾î¶»°Ô ó¸®ÇÏ¿´¾ú´ø°¡¿ä? Áï, ÇöÀç ¾î¶² ¾ÆÀÌÅÛÀÇ °ªÀ» º¯°æÇϰųª »èÁ¦ÇÏ·Á ÇÏ´Â °ÍÀÎÁö ¾î¶»°Ô ¾Ë ¼ö ÀÖ¾úÁÒ?

¿¹Á¦¿¡¼­´Â ¾î¶² ƯÁ¤ ¾ÆÀÌÅÛÀÇ °ªµéÀ» º¯°æÇϱâ À§Çؼ­, [¾÷µ¥ÀÌÆ®] ¹öưÀÌ ´­¸± °æ¿ì CommandArgument ¼Ó¼ºÀÇ °ªÀ¸·Î ÇØ´ç Ç׸ñÀÇ "title_id" °ªÀ» ³Ñ±â°í, ±× °ªÀ» ¾ò¾î¿Í¼­ ó¸®Çß¾ú½À´Ï´Ù. ¹Ù·Î ´ÙÀ½ÀÇ Äڵ带 ÅëÇØ¼­ ¸»ÀÔ´Ï´Ù.

string title_id = (string)e.CommandArgument;

±×¸®°í, À̸¦ ¾ò¾î¿À±â À§Çؼ­, EditItemTemplate ³»ÀÇ ¹öưµé¿¡´Ù°¡ CommandArgument °ªµéÀ» ÁöÁ¤ÇØ ÁÖ¾ú¾úÁÒ. ´ÙÀ½°ú °°ÀÌ ¸»ÀÔ´Ï´Ù.(±»ÀÌ ÀÌ Äڵ带 ¹Ýº¹Çؼ­ º¸¿©µå¸± Çʿ䰡 ÀÖÀ»±î? »ý°¢ÇßÁö¸¸, ¹¹... ¾î¶»½À´Ï±î? ±×ÃÝ??? °ø°£Àº ³Ë³ËÇϴϱî¿ä~~~ ÇÖÇÖÇÖ )

    <asp:Button Runat="server" Text="¾÷µ¥ÀÌÆ®" CommandName="update"
        CommandArgument='<%# DataBinder.Eval(Container.DataItem, "title_id") %>'>
    </asp:Button>
    <asp:Button Runat="server" Text="»èÁ¦" CommandName="delete"
        CommandArgument='<%# DataBinder.Eval(Container.DataItem, "title_id") %>'>
    </asp:Button>
    <asp:Button Runat="server" Text="Ãë¼Ò" CommandName="cancel"
        CommandArgument='<%# DataBinder.Eval(Container.DataItem, "title_id") %>'>
    </asp:Button>

ÀÌó·³ ¹öưÀÇ CommandArgument ¼Ó¼ºÀ» ÅëÇØ¼­ ÇöÀç ¹öưÀÌ ¾î¶² Ç׸ñÀÇ ¹öưÀÎÁö ¾Ë·ÁÁÖÁö ¾Ê´Â´Ù¸é, °¢°¢ÀÇ À̺¥Æ® 󸮱⿡¼­ ÇöÀç [¾÷µ¥ÀÌÆ®]¸¦ ÇϰíÀÚ ÇÏ´Â Ç׸ñÀÌ ¾î¶² Ç׸ñÀÎÁö¸¦ ¾Ë¾Æ³»±â´Â ½±Áö ¾Ê¾ÒÀ» °ÍÀÔ´Ï´Ù. ±×·¸½À´Ï´Ù. ÀÌÀü¿¡´Â ÀÌ·¸°Ô ó¸®Çß¾úÁö¿ä. ±×·¸´Ù°í ÀÌ·± ½ÄÀ¸·Î ó¸®ÇÑ ±âÁ¸ÀÇ ¹æ¹ýÀÌ ³ª»Ú´Ù´Â °ÍÀº ¾Æ´Õ´Ï´Ù. ±× ¹æ¹ýµµ ÁÁÁö¸¸, À̹ø¿¡ ¾Ë·ÁÁÖ´Â ¹æ¹ýµµ »ó´çÈ÷ ¾µ¸¸ÇÑ ¹æ¹ýÀ̶ó´Â °ÍÀÌÁÒ. ¾î¶² ¹æ½ÄÀ» ¼±ÅÃÇÏ´ø Áö´Â ¿©·¯ºÐÀÇ ¸òÀÔ´Ï´Ù. (°³ÀÎÀûÀ¸·Î´Â À̹ø¿¡ ¾Ë·Áµå¸± DataKeyField ¼Ó¼ºÀ» »ç¿ëÇÏ´Â ¹æ¹ýÀ» ´õ ¼±È£ÇÕ´Ï´Ù. ÀÌ ¹æ¹ýÀ» »ç¿ëÇϸé Äڵ差ÀÌ ´ëÆø ÁÙ¾îµé±â ¶§¹®ÀÌÁö¿ä)

¿©·¯ºÐÀÌ DataListÀÇ DataKeyField ¼Ó¼ºÀ¸·Î ÇöÀç ¹ÙÀεåµÈ µ¥ÀÌÅ͵éÀÇ Å° Ä÷³À» ÁöÁ¤ÇÑ´Ù¸é, DataList´Â ³»ºÎÀûÀ¸·Î ±×·¯ÇÑ Ä÷³ °ªµéÀ» ¾ÆÀÌÅÛÀÇ ¼ø¼­´ë·Î º¸°üÇÏ°Ô µÇ¸ç, ±× °ªµéÀ» DataKeys ¶ó´Â Ä÷º¼ÇÀ» ÅëÇØ Á¢±ÙÇÒ ¼ö ÀÖµµ·Ï ÇÑ´ä´Ï´Ù.

Áï, ¿¹Á¦ÀÇ °æ¿ì DataKeyField ¼Ó¼ºÀÇ °ªÀ» "title_id" ¶ó°í ÁöÁ¤ÇÏ°Ô µÇ¸é, DataList´Â ÇöÀç ¹ÙÀεåµÈ µ¥ÀÌÅ͵é Áß¿¡¼­ title_id Ä÷³ÀÇ °ªµé¸¸À» »Ì¾Æ¼­ Â÷·Ê´ë·Î DataListÀÇ DataKeys Ä÷º¼Ç¿¡ ÀúÀåÇØ ³õ´Â´Ù´Â °ÍÀÌÁÒ. ±×·¯¹Ç·Î, DataList.DataKeys[0] Àº ÇöÀç Ãâ·ÂµÈ ù¹øÂ° ¾ÆÀÌÅÛÀÇ title_id °ªÀÌ µÇ¸ç, DataList.DataKeys[1] Àº ÇöÀç Ãâ·ÂµÈ µÎ ¹øÂ° ¾ÆÀÌÅÛÀÇ title_id °ªÀÌ µÈ´Ù´Â À̾߱âÀ̱¸¿ä, ÀÌ °ªÀ» ³»ºÎÀûÀ¸·Î °¡Áö°í ÀÖ°Ô µÈ´Ù´Â ÀǹÌÀÔ´Ï´Ù. ±×¸®°í, ¿ì¸®°¡ ÇÊ¿äÇÒ °æ¿ì´Â ¾ðÁ¦µçÁö ±× °ªÀ» ºÒ·¯¿Ã ¼öµµ ÀÖ°í ¸»ÀÔ´Ï´Ù. ¸ÚÁöÁÒ??? ¾ù?? ¸»ÀÌ ¾î·Æ°Ô ´À²¸Áö½Ã³ª¿ä? ±×·¸´Ù¸é, ÇÁ·Î±×·¡¸ÓµéÀÇ ´ëÈ­¼ö´ÜÀÎ "¿¹Á¦"¸¦ ÅëÇØ¼­ ÀÌÇØÇØº¸µµ·Ï ÇϰڽÀ´Ï´Ù.

¸ÕÀú, ´ÙÀ½°ú °°ÀÌ DataListÀÇ ¼±¾ð ű׺κп¡ DataKeyField ¼Ó¼ºÀÇ °ªÀ» Ãß°¡Çϵµ·Ï ÇϽþî¿ä.

<asp:DataList id="DataList1" runat= "server" GridLines="Both" Width= "800"
    RepeatColumns="2" RepeatDirection="Vertical" DataKeyField="title_id">

ÀÌ·¸°Ô ¹Ù²Ù´Â °Í ¸¸À¸·Î, °¢ ¾ÆÀÌÅÛÀÇ title_id Ä÷³ °ªÀº DataList°¡ ÀÚüÀûÀ¸·Î ÀúÀåÇϰí ÀÖ°Ô µË´Ï´Ù. ±×·¸´Ù¸é, ÀÌÁ¦ EditItemTemplate ³»ÀÇ [¾÷µ¥ÀÌÆ®] ³ª [»èÁ¦] ¹öưÀº CommandArgument ¼Ó¼ºÀÇ °ªÀ» °¡Áö°í ÀÖÀ» Çʿ䰡 ¾ø¾î¿ä. ±×µéÀÇ µµ¿òÀÌ ¾ø¾îµµ, °ªÀ» ÀÌÁ¨ ´õ ½±°Ô ¾ò¾î¿Ã ¼ö°¡ ÀÖ°Ô µÇ¾úÀ¸´Ï±î¿ä. ±×·¯´Ï±ñ, ±× ºÎºÐÀ» ÀÌÁ¦ ´ÙÀ½°ú °°ÀÌ Áö¿ö¹ö¸®µµ·Ï Çϼ¼¿ä.

    <EditItemTemplate>
        <DIV>
        <IMG hspace="10" align="left" src='http://localhost/quickstart/ASPPlus/images/Title-
            <%# DataBinder.Eval(Container.DataItem, "title_id") %>.gif' >
        Á¦¸ñ :
        <asp:TextBox Runat="server" BorderStyle="Groove" width="250" ID="title"
            NAME="title" Text='<%# DataBinder.Eval(Container.DataItem, "title") %>'>
        </asp:TextBox>
        <BR>
        °¡°Ý :
        <asp:TextBox Runat="server" BorderStyle="Groove" ID="price" NAME=" price "
            Text='<%# DataBinder.Eval(Container.DataItem, "price") %>'></asp:TextBox>
        <BR>
        <asp:TextBox Runat="server" BorderStyle="Groove" TextMode="MultiLine" Rows="5"
            Width="300" Text='<%# DataBinder.Eval(Container.DataItem, "notes") %>'
            ID="notes" NAME=" notes "></asp:TextBox>
        <p>
            <asp:Button Runat="server" Text="¾÷µ¥ÀÌÆ®" CommandName= "update">
               </asp:Button>
            <asp:Button Runat="server" Text="»èÁ¦" CommandName= "delete">
               </asp:Button>
            <asp:Button Runat="server" Text="Ãë¼Ò" CommandName= "cancel">
               </asp:Button>
        </p>
        </DIV>
    </EditItemTemplate>

±×¸®°í, DataList1_UpdateCommand À̺¥Æ® 󸮱âÀÇ Äڵ嵵 ´ÙÀ½°ú °°ÀÌ º¯°æµÇ¾î¾ß ÇÕ´Ï´Ù. (ÀÌ·¸°Ô º¯°æµÈ ÄÚµå´Â ´Ù¿î·Îµå ¹ÞÀº ÆÄÀϵé Áß¿¡¼­ DataListEx1plus5.aspx¶ó´Â À̸§À¸·Î Á¦°øµÇ°í ÀÖ½À´Ï´Ù)

    private void DataList1_UpdateCommand(object source,
        System.Web.UI.WebControls.DataListCommandEventArgs e)
    {
        string title = ((TextBox)e.Item.FindControl("title")).Text;
        string price = ((TextBox)e.Item.FindControl("price")).Text;
        string notes = ((TextBox)e.Item.FindControl("notes")).Text;
        string title_id = DataList1.DataKeys[e.Item.ItemIndex].ToString();
        
        ¡¦

´Þ¶óÁø ºÎºÐÀº ÇöÀç ¾÷µ¥ÀÌÆ®µÇ´Â ¾ÆÀÌÅÛÀÇ title_id °ªÀ» ¾ò¾î¿À´Â ºÎºÐÀÔ´Ï´Ù. ±âÁ¸¿¡´Â [¾÷µ¥ÀÌÆ®] ¹öưÀÇ CommandArgument °ªÀ» Àоî¿ÔÁö¸¸, Áö±ÝÀÇ °æ¿ì¿¡´Â DataListÀÇ DataKeys Ä÷º¼Ç¿¡¼­ ÇöÀç ¾ÆÀÌÅÛÀÇ ¼ø¼­ °ªÀ» »ç¿ëÇÏ¿© Àоî¿À¸é µÇ´Â °ÍÀÌÁÒ. ÇöÀç ¾ÆÀÌÅÛÀÇ Ãâ·Â ¼ø¼­´Â e.Item.ItemIndex¸¦ ÅëÇØ¼­ ¾Ë¾Æ³¾ ¼ö ÀÖÀ¸¹Ç·Î, ÇöÀç [¾÷µ¥ÀÌÆ®]ÇÏ´Â Ç׸ñÀÇ title_id Ä÷³ÀÇ °ªÀº DataList1.DataKeys[e.Item.ItemIndex]ÀÌ µÉ °ÍÀÔ´Ï´Ù.

DataList1_DeleteteCommand À̺¥Æ® 󸮱âÀÇ °æ¿ìµµ À§¿Í µ¿ÀÏÇÏ°Ô º¯°æÇØÁÖ¸é µË´Ï´Ù

Áö±Ý ÇÏ´Â À̾߱âÀÇ ¿äÁ¡Àº ¾î¶»°Ô ÇØ´ç ¾ÆÀÌÅÛÀÇ Å° °ªÀ» ¾ò¾î¿À´À³Ä ÀÔ´Ï´Ù. ÇØ´ç ¾ÆÀÌÅÛÀÇ Å° °ªÀ» ¾ò¾î¿ÀÁö ¸øÇϸé, ±× ¾ÆÀÌÅÛÀÇ µ¥ÀÌÅ͸¦ º¯°æÇÒ ¹æ¹ýÀÌ ¾øÀ¸´Ï ¸»ÀÔ´Ï´Ù. ±× Ű °ªÀ» ButtonÀÇ CommandArgument¸¦ ÅëÇØ¼­ ¾ò¾î¿Ã ¼öµµ ÀÖ°í, Áö±Ýó·³ DataKeyField ¼Ó¼ºÀ» »ç¿ëÇÏ¿© °£´ÜÇÏ°Ô ¾ò¾î¿Ã ¼öµµ ÀÖ½À´Ï´Ù. ¸ðµÎ ÁÁÀº ¹æ¹ýÀ̸ç, ¿©·¯ºÐÀÌ º¸±â¿¡ ³ªÀº ¹æ¹ýÀ» »ç¿ëÇÏ¸é µÇ´Â °ÍÀÌÁÒ.

¸¶À½ÀÌ Á¶±ÞÇϽŠºÐµéÀº Á¦ À̾߱Ⱑ ¸Ó¸® ¼Ó¿¡ Àß ¹Þ¾Æµé¿©ÁöÁö ¾ÊÀ» ¼öµµ ÀÖÀ» °Í °°³×¿ä. ¿©·¯ºÐÀÌ ASP.NETÀ¸·Î ÇÏ°í ½ÍÀº °ÍµéÀº ¾î¼¸é °Ô½ÃÆÇ, ¾î¼¸é ¼îÇθô, ¾î¼¸é Ä¿¹Â´ÏƼ, ȤÀº ¸ÞÀÏ º¸³»±â µîµîÀÇ ´«¿¡ º¸ÀÌ´Â ¸ÚÁø ÀÛ¾÷µéÀÏ Å×´Ï ¸»ÀÔ´Ï´Ù.

¿©·¯ºÐµéÀº ¿Ö ÀÌ·¯ÇÑ ÄÁÆ®·ÑµéÀ» ÀÌÅä·Ï ±¸Ã¼ÀûÀ¸·Î ¾Ë¾Æ¾ß ÇÏ´ÂÁö, ±×°ÍÀÌ ¾î¶² Àǹ̰¡ ÀÖ´ÂÁö Àǽɽº·¯¿ï °ÍÀ̰í, ¿©·¯ºÐ¿¡°Ô Áß¿äÇÑ °ÍÀº ÀÌ·± ÄÁÆ®·ÑµéÀÇ »ç¿ë¹ýÀÌ ¾Æ´Ï¶ó ½ÇÁ¦·Î ASP.NET À̶ó´Â ±â¼úÀ» ¾îµð¿¡ ¾î¶»°Ô »ç¿ëÇÏ´Â Áö ÀÏÁöµµ ¸ð¸¨´Ï´Ù. ÀÌ·¯ÇÑ ÄÁÆ®·ÑÀÇ »ç¿ë¹ýº¸´Ù´Â ÇϳªÀÇ °Ô½ÃÆÇÀ» ¸¸µé¾î ³»´Â °ÍÀÌ ¿©·¯ºÐ¿¡°Ô´Â ´õ¿í Çö½ÇÀûÀÎ ¸ñÇ¥ÀÏ ¼ö ÀÖÀ¸´Ï ¸»ÀÔ´Ï´Ù. ±×·¸´Ù´Â »ç½ÇÀ» Àúµµ ¸ð¸£´Â ¹Ù´Â ¾Æ´Õ´Ï´Ù. ÇÏÁö¸¸, ÀÌ °­Á´ ³ªÁß¿¡ ¿©·¯ºÐÀÌ ÀÌ °­Á¸¦ ´Ù½Ã º¼ °æ¿ì¿¡µµ µµ¿òÀÌ µÇ¾îÁÙ ¼ö Àֱ⸦ ¹Ù¶ó´Â ¸¶À½À¸·Î ÀÛ¼ºÇϰí ÀÖ½À´Ï´Ù. ¾î¼¸é, °úÁßÇÑ ¾÷¹«·Î ÀÎÇØ ÇöÀç ¿©À¯°¡ ¾ø´Â ¿©·¯ºÐµéÀÌ ÀÌ °­Á¿¡ °ü½ÉÀ» °®Áö ¾ÊÀ» ¼ö ÀÖ´Ù´Â °Íµµ ¾Ë°í ÀÖ½À´Ï´Ù. ÇÏÁö¸¸, Á¶±Ý ¿©·ÂÀÌ »ý°å°Å³ª, ÀÏ´Ü ±ÞÇÑ ºÒÀº ²ö »óŶó¸é ¿©·¯ºÐÀº ±âº»ÀûÀÎ Áö½Ä¾øÀÌ ¸¸µé¾î ³½ °Ô½ÃÆÇÀ̳ª Æ÷·³, Ä¿¹Â´ÏƼ¸¦ ¾ÈÁ¤ÀûÀ¸·Î ±×¸®°í, Á¶±Ý ´õ È¿À²ÀûÀ¸·Î ¸¸µé°í ½Í¾îÁú °ÍÀ̸ç, ±×°Ô ¿©·¯ºÐ¿¡°Ô ÁÖ¾îÁú ´ÙÀ½ ¹øÀÇ °úÁ¦ÀÏ ¼öµµ ÀÖÀ» °Ì´Ï´Ù. ±×·¯ÇÑ °æ¿ì¿¡ Á÷¸éÇÒ °æ¿ì, ÀÌ °­Á´ ¿©·¯ºÐ¿¡°Ô Å« µµ¿òÀÌ µÇ¾îÁÙ °ÍÀ̶ó ¹Ï°í ÀÖ´ä´Ï´Ù.(Á¦°¡ ÀÌ ºÎºÐÀ» °øºÎÇϸ鼭 ±×·¨À¸´Ï±î¿ä ¤Ð_¤Ð) 

¿©·¯ºÐ¿¡°Ô ÇÊ¿äÇÏÁö ¾ÊÀ» À̾߱⸦ °­Á·Π´Ù·ê¸®´Â ¾øÁö ¾Ê½À´Ï±î???  ¾Æ´Ñ°¡?? °­Á¸¦ ¶§¿ì±â À§Çؼ­??? ¼³¸¶.... À½....  -_-+

Á¦ º¯·ÐÀÌ ¾Æ´Ï´õ¶óµµ.... ¹º°¡ ±×¸®µå °ü·Ã ÄÁÆ®·ÑµéÀ» °øºÎÇÏ´Â °ÍÀÌ Áß¿äÇÏ´Ù´Â ´À³¦Àº ÃæºÐÈ÷ ¹Þ¾ÒÀ» °ÍÀ̶ó »ý°¢ÇÕ´Ï´Ù. »ç½Ç °¡²û¾¿ ÀÌ·¯ÇÑ ÀÚ±ØÀº ÇÊ¿äÇÑ °Í °°¾Æ¿ä. ¿ì¸®´Â °³¹ßÀÚ, ±â¾ï·ÂÀÌ ±×¸® ÁÁÁö ¸øÇÑ °³¹ßÀÚµéÀ̴ϱî¿ä. °í·Î, Çѹø ºÒÀÌ ºÙÀº ¿­Á¤µµ À̳» ½Ä¾î¹ö¸®±â ÀϾ¥À̰í, µô·¹¸¶¿¡µµ ½±°Ô ºüÁ®µé°ï ÇÏÁ®. ±×·¡¼­, ÀÌ·¯ÇÑ ÀÚ±ØÀº ÀÚÁÖ ÇÊ¿äÇÑ °Í °°½À´Ï´Ù. ±×¸®°í, ½Å³äµµ ÇÊ¿äÇϱ¸¿ä. Áö±Ý ¿©·¯ºÐÀÌ Çϰí ÀÖ´Â °øºÎ´Â ¹«Á¶°Ç ¿©·¯ºÐ¿¡°Ô ÈûÀÌ µÇ´Â Áö½ÄÀÔ´Ï´Ù.(±×·¸°Ô ¹Ïµµ·Ï ³ë·ÂÇϼ¼¿ä) °øºÎÇÏ´Â µ¿¾È¿¡´Â ÀǽÉÀ» °®Áö ¸¶¼¼¿ä. ±×·¯ÇÑ ÀǽÉÀº ¿©·¯ºÐ¿¡°Ô ÀüÇô µæÀÌ µÇÁö ¾ÊÀ» °Ì´Ï´Ù. ¸ðµç ÀǽÉÀº °øºÎ¸¦ ¸¶¹«¸®ÇÑ ´ÙÀ½¿¡ °¡Á®º¸¾Æµµ ´ÊÁö ¾Ê´Ù°í »ý°¢ÇÕ´Ï´Ù.

¾ÆÁ÷ ¿ÏÀüÇÏÁö ¸øÇÑ Áö½ÄÀ¸·Î ÀǽÉÇÏ´Â °ÍÀº ¿©·¯ºÐ¿¡°Ô ºÒ¾È¸¸À» °¡Áß½Ãų »ÓÀ̴ϱî¿ä. ÁÖº¯¿¡ ¿©·¯ºÐÀÇ ÈûÀ» ºüÁö°Ô ÇÏ´Â À̾߱⸦ ÇÏ´Â »ç¶÷ÀÌ ÀÖ´Ù¸é, ¹°¾îº¸¼¼¿ä. ±×µéÀÌ ¾ó¸¶³ª ±× ±â¼ú¿¡ ´ëÇØ¼­ ¾Ë°í ÀÖ´ÂÁö.. °ú¿¬ Á¦´ë·Î ±â¼úÀ» ¾Ë°í À̾߱âÇÏ´ÂÁö..  ¾ðÁ¦³ª ±×·¸µíÀÌ ºó ¼ö·¹°¡ ¿ä¶õÇÑ ¹ýÀÔ´Ï´Ù. ÁøÁ¤ÇÑ °í¼ö´Â ±× ¾î¶°ÇÑ ±â¼úµµ ÆïÇÏÇÏÁö ¾Ê¾Æ¿ä....

¸·ÆÇ¿¡ »ç´ãÀÌ ±æ¾ú³×¿ä.. »ç´ã Èļ¼Àεµ ¾Æ´Ï¸é¼­ ¸»ÀÔ´Ï´Ù... ÈÖÀÌÀÌ~~~À×~~~   ¤Ð_¤Ð

Á˼ÛÇÕ´Ï´Ù. ½ä··ÇÑ ºÐÀ§±â ¸¸µé´Ù´Ï..¤Ð_¤Ð
Àú´Â ³À´Ù ´ÙÀ½ °­Á·Π°Ç³Ê°¡¼­ ±â´Ù¸®°Ú½À´Ï´Ù. ¾ó·· ¿À¼¼¿ä~~~~  ^^

 

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