Blog Content

    티스토리 뷰

    22.C# ASP.NET - InputControl [WebStandardControl]

    반응형
    InputControl에 관한 예제입니다.

    FrmInputControl.aspx

    <div>

       <table border="1" width="500">

           <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="V">배구</asp:ListItem>

                   <asp:ListItem Value="B">농구</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 Selected="True">회사원</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" />

       <br />

       <asp:Label ID="lblDisplay" runat="server"></asp:Label>  

    </div>


    FrmInputControl.aspx.cs

    protected void Page_Load(object sender, EventArgs e)

    {

       // Page.IsPostBack : 처음로드하면 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("WPF", "WPF")); // *

    }

     

    protected void btnOK_Click(object sender, EventArgs e)

    {

       //[0] 문자열 변수 선언 : StringBuilder 클래스 사용

       StringBuilder sb = new StringBuilder();

       //[1] 체크박스의 내용 가져오기 : 단일값

       if (this.chkAgree.Checked) {

           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.AppendFormat("[2] {0}<br/>", this.lstHobby.Items[1].Value);

       }

       if (this.lstHobby.Items[2].Selected) {

           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);

       //[6] 리스트박스 : 다중값

       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();

    }


    결과화면

    [그림22-1]



    반응형

    Comments