ASP.NET

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

Godffs 2009. 10. 7. 11:05
반응형
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]



반응형