.Net Project/ASP.NET 3.5 Sp1

16장 ASP.NET 입력컨트롤 (WebInputControl)

Magic_kit 2009. 10. 8. 03:03
반응형
 InputControl.aspx 디자인 모드

 


<%@ Page Language="C#" AutoEventWireup="true" 
                CodeFile="FrmlnputControl.aspx.cs"
                Inherits="WebForm10월7일_FrmlnputControl" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
               "
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>InputControl : 입력컨트롤</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <table border="1">
            <tr>
                <td>체크박스(이용약관)</td>
                <td>
                    <asp:CheckBox ID="chkAgree" runat="server"
                                                Text="동의합니다" Checked="true" />
                </td>
            </tr>
           
            <tr>
                <td>체크박스리스트(취미)</td>
                <td>
                    <asp:CheckBoxList ID="lstHobby" runat="server" 
             RepeatDirection="Horizontal" RepeatColumns="2" RepeatLayout="Flow"> 
                        <asp:ListItem Value="S" Selected="True">축구</asp:ListItem>
                        <asp:ListItem Value="B">농구</asp:ListItem>
                        <asp:ListItem Value="V">배구</asp:ListItem>
                        <asp:ListItem Value="H">핸드볼</asp:ListItem>
                    </asp:CheckBoxList>                    
                </td>
            </tr>
           
            <tr>
                <td>라이오버튼(성별)</td>
                <td>
                    <asp:RadioButton ID="RdoMan" runat="server" Text="남자"
                                                   Checked="true" GroupName="Gender" />
                    <asp:RadioButton ID="RdoWomen" runat="server" Text="여자" 
                                                   GroupName="Gender" />
                </td>
            </tr>
           
            <tr>
                <td>라이오버튼리스트(컨트롤)</td>
                <td>
                    <asp:RadioButtonList ID="lstWedding" runat="server"
                      RepeatDirection="Horizontal" RepeatLayout="Table">
                  
                    <asp:ListItem Selected="true">미혼</asp:ListItem> 
                    <asp:ListItem>기혼</asp:ListItem>                         
                  
                    </asp:RadioButtonList>
                </td>
            </tr>
           
            <tr>
                <td>드롭다운리스트(단일선택)</td>
                <td>
                    <asp:DropDownList ID="lstJob" runat="server">
                        <asp:ListItem>회사원</asp:ListItem>
                        <asp:ListItem>공무원</asp:ListItem>
                        <asp:ListItem>백수</asp:ListItem>
                    </asp:DropDownList>
                </td>
            </tr>
           
            <tr>
                <td>리스트박스(다중선택)</td>
                <td>
                    <asp:ListBox ID="lstFavorite" runat="server"
                                             SelectionMode="Multiple">
                    </asp:ListBox>
                 
                </td>
            </tr>
        </table>
        <hr />
        <asp:Button ID="btnOK" runat="server" Text="확인" onclick="btnOK_Click" />
        <asp:Label ID="lblDisplay" runat="server" Text=""
                              ForeColor="Red"></asp:Label>
      </div>
    </form>
</body>
</html>


 Inputcontrol.aspx.Cs 이벤트 컨트롤 모드

using System;

public partial class WebForm10월7일_FrmlnputControl : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        //처음 로드시하면 False, 포스트백(다시게시)되면 true 변경
        if (!Page.IsPostBack)
        {
            BindFavorite();
           
        }
    }

    private void BindFavorite()
    {
        //동적으로 ListItem을 채우는 3가지 방법
        //관심사 채우기(공통)
 
       lstFavorite.Items.Add("C#");
        this.lstFavorite.Items.Add("ASP.NET");

        ListItem li = new ListItem();
        li.Text = "비베";
        li.Value = "VB";
        this.lstFavorite.Items.Add(li);

        ListItem listItem = new ListItem("닷넷", ".NET");
        this.lstFavorite.Items.Add(listItem);

        this.lstFavorite.Items.Add(new ListItem("MFC", "API"));
    }

    protected void btnOK_Click(object sender, EventArgs e)
    {
        StringBuilder sb = new StringBuilder();

        //[1]체크박스의 내용 가져오기 : 단일값
        {
            sb.Append("[1]" + this.chkAgree.Text + "<br />");
        }

        //[2]체크박스리스트의 내용 가져오기 : 다중값
        if (this.lstHobby.Items[0].Selected) //0번째 항목이 선택되었다면....
        {
            sb.Append("[2]" + this.lstHobby.Items[0].Value + "<br />");
        }

        if (this.lstHobby.Items[1].Selected)
        {
            //sb.Append("[2]" + this.lstHobby.Items[1].Value + "<br />");
            sb.AppendFormat("[2] {0} <br />", this.lstHobby.Items[1].Value);
        }

        if (this.lstHobby.Items[2].Selected)
        {
            //sb.Append("[2]" + this.lstHobby.Items[2].Value + "<br />");
            sb.AppendFormat("[2] {0} <br />", this.lstHobby.Items[2].Value);
        }

        //[3] 라디오 버튼 값 받아오기 : 단일값
        if (this.RdoMan.Checked)
        {
            sb.AppendFormat("[3] {0} 선택 <br />", RdoMan.Text);           
        }
        else
        {
            sb.AppendFormat("[3] {0} 선택 <br />", RdoWomen.Text);
        }

        //[4]라이도 버튼 값 받아오기 : 단일값
        sb.AppendFormat("[4] {0} <br />", lstWedding.SelectedItem.Text);

        //[5]드롭다운리스트 값 받아오기 : 단일값
        sb.AppendFormat("[5] {0} <br />", lstJob.Items
                                  [lstJob.SelectedIndex].Value);

        //[7]리스트박스 : 다중값
        for (int i = 0; i < lstFavorite.Items.Count; i++)
        {
            if (lstFavorite.Items[i].Selected)
            {
                sb.AppendFormat("[6] {0} <br />", lstFavorite.Items[i].Value);
            }
        }

        //OR
        foreach (ListItem li in lstFavorite.Items)
        {
            if (li.Selected)
            {
                sb.AppendFormat("[6] {0} <br />", li.Text);
            }
        }

        //출력
        this.lblDisplay.Text = sb.ToString();
    }
}







반응형