FrmInputControl
.NET프로그래밍/ASP.NET 3.5 SP1 2009. 10. 7. 10:11 |
==> [FrmInputControl.aspx] 소스 및 디자인
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="FrmInputControl.aspx.cs" Inherits="FrmInputControl" %>
<!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>입력컨트롤들</title>
</head>
<body>
<form id="form1" runat="server">
<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>
</form>
</body>
</html>
-------------------------------------------------------------------------------------
==> [FrmInputControl.aspx.cs] 소스
using System;
using System.Web.UI.WebControls;
using System.Text;
public partial class FrmInputControl : System.Web.UI.Page
{
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();
}
}
-------------------------------------------------------------------------------------
[실행결과]
--> 실행 후 웹 페이지에서 '테이블'에 각각 들어가 있는 '6개 입력컨트롤들'에 체크를 하고("체크박스" / "체크박스리스트" / "라디오버튼" / "라디오버튼리스트" / "드롭다운리스트" / "리스트박스") '테이블'아래에 있는 '확인'버튼을 누르면 버튼아래의 '레이블'에 각각의 '입력컨트롤들'에 체크된 결과가 출력된다. (참고로, 위의 [FrmInputControl.aspx.cs] 소스코드의 "[6] 리스트박스"부분 코드에서 "for문"과 "foreach문"을 연달아 사용하여 아래그림과 같이 "리스트박스"에 체크된 결과가 한번더 반복되어 레이블에 출력되었다.)
'.NET프로그래밍 > ASP.NET 3.5 SP1' 카테고리의 다른 글
FrmAdRotator (광고 컨트롤) (0) | 2009.10.07 |
---|---|
FrmCalendar (0) | 2009.10.07 |
FrmHiddenField (0) | 2009.10.07 |
FrmLinkButton (0) | 2009.10.07 |
FrmLiteral (0) | 2009.10.07 |