Panel 웹 서버 컨트롤은 ASP.NET 웹 페이지 내에서 정적 텍스트 및 기타 컨트롤의 부모로 사용할 수 있는 컨테이너 컨트롤을 제공합니다.
1. 배경
Panel 컨트롤을 다른 컨트롤의 컨테이너로 사용할 수 있습니다. 이 방법은 프로그래밍 방식으로 콘텐츠를 생성하고 페이지에 콘텐츠를 삽입하는 방법이 필요할 때 특히 유용합니다. 다음 섹션에서는 Panel 컨트롤을 사용할 수 있는 다른 방법을 설명합니다.
1. 동적으로 생성된 컨트롤의 컨테이너
Panel 컨트롤은 런타임에 생성된 컨트롤을 위한 편리한 컨테이너를 제공합니다.
2. 그룹 컨트롤 및 마커
컨트롤 그룹 및 관련 태그를 패널 컨트롤에 배치한 다음 패널 컨트롤을 조작하여 하나의 단위로 관리할 수 있습니다. 예를 들어 패널의 Visible 속성을 설정하여 패널의 컨트롤 그룹을 숨기거나 표시할 수 있습니다.
3. 기본 버튼이 있는 양식
TextBox 컨트롤과 Button 컨트롤을 Panel 컨트롤에 배치한 다음 Panel 컨트롤의 DefaultButton 속성을 패널에 있는 버튼의 ID로 설정하여 기본 버튼을 정의할 수 있습니다. 사용자가 패널 내의 텍스트 상자에 입력하는 동안 Enter 키를 누르면 이는 사용자가 특정 기본 버튼을 클릭한 것과 동일한 효과를 갖습니다. 이를 통해 사용자는 프로젝트 양식을 보다 효율적으로 사용할 수 있습니다.
4. 다른 컨트롤에 스크롤 막대 추가
일부 컨트롤(예: TreeView 컨트롤)에는 기본 제공 스크롤 막대가 없습니다. Panel 컨트롤 내에 스크롤 막대 컨트롤을 배치하여 스크롤 동작을 추가할 수 있습니다. Panel 컨트롤에 스크롤 막대를 추가하려면 Height 및 Width 속성을 설정하고 Panel 컨트롤을 특정 크기로 제한한 다음 ScrollBars 속성을 설정합니다.
4. 페이지의 사용자 정의 영역
Panel 컨트롤을 사용하여 다음과 같이 사용자 정의된 모양과 동작으로 페이지에 영역을 만들 수 있습니다.
·제목이 있는 그룹 상자 만들기: GroupingText 속성을 설정하여 제목을 표시할 수 있습니다. 페이지가 렌더링되면 제목이 포함된 상자가 Panel 컨트롤 주위에 표시되며 제목은 사용자가 지정한 텍스트입니다.
참고: 패널 컨트롤에서는 스크롤 막대와 그룹화된 텍스트를 동시에 지정할 수 없습니다. 그룹화된 텍스트가 설정된 경우 스크롤 막대보다 우선순위가 높습니다.
·사용자 정의 색상 또는 기타 모양으로 페이지에 영역 만들기: Panel 컨트롤은 페이지 영역에 대한 고유한 모양을 만들기 위해 설정할 수 있는 모양 속성(예: BackColor 및 BorderWidth)을 지원합니다.
설명: GroupingText 속성을 설정하면 Panel 컨트롤 주위에 테두리가 자동으로 렌더링됩니다.
2. 방법: Web Forms 페이지에 패널 컨트롤 추가
1. "디자인" 보기에서 도구 상자의 "표준" 탭에 있는 패널 컨트롤을 페이지로 끌어다 놓습니다.
2. 정적 텍스트를 생성하려면 컨트롤을 클릭한 다음 텍스트를 입력합니다. 컨트롤을 추가하려면 도구 상자에서 패널 컨트롤로 드래그하세요.
참고: 런타임에 Panel 컨트롤에 정적 텍스트를 추가하려면 Literal 컨트롤을 만들고 해당 Text 속성을 설정해야 합니다. 그런 다음 컨트롤과 동일한 방식으로 프로그래밍 방식으로 리터럴 개체를 패널에 추가할 수 있습니다. 컨트롤 추가에 대한 자세한 내용은 방법: ASP.NET 웹 페이지에 프로그래밍 방식으로 컨트롤 추가를 참조하세요.
3. 패널의 테두리를 끌어 컨트롤 크기를 조정할 수도 있습니다.
설명: 이 컨트롤은 자동으로 크기를 조정하여 모든 하위 컨트롤을 표시합니다(설정된 높이를 초과하는 경우에도 마찬가지).
4. 다음 표에 설명된 대로 Panel 컨트롤의 속성을 설정하여 창이 하위 컨트롤과 상호 작용하는 방식을 지정할 수도 있습니다.
속성 설명
수평 정렬
패널 내에서 하위 컨트롤의 정렬(왼쪽, 오른쪽, 가운데 또는 양쪽 맞춤)을 지정합니다.
포장하다
패널 내에서 너무 넓은 내용이 다음 줄로 줄바꿈되는지 아니면 패널 가장자리에서 잘리는지 여부를 지정합니다.
방향
컨트롤의 내용이 왼쪽에서 오른쪽으로 또는 오른쪽에서 왼쪽으로 렌더링되는지 여부를 지정합니다. 이 속성은 전체 페이지와 방향이 다른 페이지 영역을 만들 때 유용합니다.
스크롤바
Panel 컨트롤을 특정 크기로 제한하기 위해 Height 및 Width 속성을 설정한 경우 ScrollBars 속성을 설정하여 스크롤 막대를 추가할 수 있습니다.
그룹화텍스트
Panel 컨트롤 주위에 테두리와 제목을 렌더링합니다.
설명하다:
GroupingText 속성을 설정하면 스크롤 막대가 나타나지 않습니다(스크롤 막대를 지정한 경우).
3. 패널 클래스
패널 컨트롤은 다른 컨트롤을 위한 컨테이너입니다. 이 컨트롤은 프로그래밍 방식으로 컨트롤을 생성하거나, 컨트롤 집합을 숨기거나 표시하거나, 컨트롤 집합을 지역화하려는 경우에 특히 유용합니다.
Direction 속성은 패널 컨트롤의 내용을 지역화하여 아랍어나 히브리어와 같이 오른쪽에서 왼쪽으로 쓰는 언어로 텍스트를 표시하는 데 유용합니다.
Panel 컨트롤은 컨트롤 내용의 동작과 표시를 사용자 지정할 수 있는 여러 속성을 제공합니다. BackImageUrl 속성을 사용하여 Panel 컨트롤에 대한 사용자 지정 이미지를 표시합니다. ScrollBars 속성을 사용하여 컨트롤의 스크롤 막대를 지정합니다.
예
1. 다음 예제에서는 Panel 컨트롤을 사용하여 프로그래밍 방식으로 컨트롤을 생성하고 컨트롤 그룹을 숨기거나 표시하는 방법을 보여줍니다.
참고: 다음 코드 예제는 단일 파일 코드 모델을 사용하므로 코드 숨김 파일에 직접 복사하면 제대로 작동하지 않을 수 있습니다. 이 코드 샘플은 확장명이 .aspx인 빈 텍스트 파일에 복사해야 합니다.
<%@ 페이지 언어="C#" AutoEventWireup="True" %>
" http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd ">
<머리>
<스크립트 runat="서버">
void Page_Load(객체 전송자, EventArgs e) {
// 패널 내용을 표시하거나 숨깁니다.
if (Check1.Checked) {
Panel1.Visible=false;
}
또 다른 {
Panel1.Visible=true;
}
// Label 컨트롤을 생성합니다.
int numlabels = Int32.Parse(DropDown1.SelectedItem.Value);
for (int i=1; i<=numlabels; i++) {
라벨 l = new Label();
l.Text = "라벨" + (i).ToString();
l.ID = "라벨" + (i).ToString();
Panel1.Controls.Add(l);
Panel1.Controls.Add(new LiteralControl("
"));
}
// 텍스트 상자 컨트롤을 생성합니다.
int numtexts = Int32.Parse(DropDown2.SelectedItem.Value);
for (int i=1; i<=numtexts; i++) {
TextBox t = 새로운 TextBox();
t.Text = "TextBox" + (i).ToString();
t.ID = "TextBox" + (i).ToString();
Panel1.Controls.Add(t);
Panel1.Controls.Add(new LiteralControl("
"));
}
}
<본문>