WebPartManager.AddWebPart(WebPart, WebPartZoneBase, Int32) 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
웹 페이지에 WebPart 컨트롤을 프로그래밍 방식으로 추가하기 위한 방법을 제공합니다.
public:
System::Web::UI::WebControls::WebParts::WebPart ^ AddWebPart(System::Web::UI::WebControls::WebParts::WebPart ^ webPart, System::Web::UI::WebControls::WebParts::WebPartZoneBase ^ zone, int zoneIndex);
public System.Web.UI.WebControls.WebParts.WebPart AddWebPart (System.Web.UI.WebControls.WebParts.WebPart webPart, System.Web.UI.WebControls.WebParts.WebPartZoneBase zone, int zoneIndex);
member this.AddWebPart : System.Web.UI.WebControls.WebParts.WebPart * System.Web.UI.WebControls.WebParts.WebPartZoneBase * int -> System.Web.UI.WebControls.WebParts.WebPart
Public Function AddWebPart (webPart As WebPart, zone As WebPartZoneBase, zoneIndex As Integer) As WebPart
매개 변수
- zone
- WebPartZoneBase
webPart
가 추가될 WebPartZoneBase입니다.
- zoneIndex
- Int32
webPart
에서 zone
의 다른 컨트롤을 기준으로 zone
가 나타나는 서수 위치를 나타내는 정수입니다.
반환
페이지에 추가된 WebPart 컨트롤입니다.
예외
zoneIndex
값이 0보다 작은 경우
예제
다음 코드 예제를 사용 AddWebPart 하는 방법을 보여 줍니다는 페이지에 프로그래밍 방식으로 서버 컨트롤을 추가 하는 방법입니다. 페이지 태그에는 빈 <asp:webpartzone>
요소와 <asp:webpartmanager>
요소가 포함됩니다.
일정 추가 단추를 처음 클릭하면 이벤트 처리기의 코드에서 컨트롤을 Calendar 만들고 메서드를 호출 AddWebPart 하여 개체로 GenericWebPart 영역에 추가합니다.
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
protected void Button2_Click(object sender, EventArgs e)
{
WebPartManager mgr = WebPartManager1;
Calendar cal = new Calendar();
cal.ID = "cal1";
GenericWebPart calWebPart = mgr.CreateWebPart(cal);
mgr.AddWebPart(calWebPart, WebPartZone1, 1);
}
protected void Button1_Click(object sender, EventArgs e)
{
if (WebPartZone1.WebParts.Count > 1)
{
WebPart cal = WebPartZone1.WebParts[1];
if (cal.Controls[0].GetType().Name == "Calendar"
&& cal != null)
WebPartManager1.DeleteWebPart(cal);
}
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Adding a Server Control</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:WebPartManager ID="WebPartManager1"
runat="server" />
<asp:WebPartZone ID="WebPartZone1" runat="server">
<ZoneTemplate>
<asp:BulletedList
DisplayMode="HyperLink"
ID="BulletedList1"
runat="server"
Title="My Links">
<asp:ListItem Value="http://www.microsoft.com">
Microsoft
</asp:ListItem>
<asp:ListItem Value="http://www.msn.com">
MSN
</asp:ListItem>
<asp:ListItem Value="http://www.contoso.com">
Contoso Corp.
</asp:ListItem>
</asp:BulletedList>
</ZoneTemplate>
</asp:WebPartZone>
<asp:Button ID="Button1" runat="server"
Text="Delete Calendar"
OnClick="Button1_Click" />
<asp:Button ID="Button2" runat="server"
Text="Add Calendar"
OnClick="Button2_Click" />
</div>
</form>
</body>
</html>
<%@ Page Language="vb" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
Protected Sub Button2_Click(ByVal sender As Object, _
ByVal e As System.EventArgs)
Dim mgr As WebPartManager = WebPartManager1
Dim cal As New Calendar()
cal.ID = "cal1"
Dim calWebPart As GenericWebPart = mgr.CreateWebPart(cal)
mgr.AddWebPart(calWebPart, WebPartZone1, 1)
End Sub
Protected Sub Button1_Click(ByVal sender As Object, _
ByVal e As System.EventArgs)
If WebPartZone1.WebParts.Count > 1 Then
Dim cal As WebPart = WebPartZone1.WebParts(1)
If cal.Controls(0).GetType().Name = "Calendar" AndAlso _
cal IsNot Nothing Then
WebPartManager1.DeleteWebPart(cal)
End If
End If
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>Adding a Server Control</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:WebPartManager ID="WebPartManager1"
runat="server" />
<asp:WebPartZone ID="WebPartZone1" runat="server">
<ZoneTemplate>
<asp:BulletedList
DisplayMode="HyperLink"
ID="BulletedList1"
runat="server"
Title="My Links">
<asp:ListItem Value="http://www.microsoft.com">
Microsoft
</asp:ListItem>
<asp:ListItem Value="http://www.msn.com">
MSN
</asp:ListItem>
<asp:ListItem Value="http://www.contoso.com">
Contoso Corp.
</asp:ListItem>
</asp:BulletedList>
</ZoneTemplate>
</asp:WebPartZone>
<asp:Button ID="Button1" runat="server"
Text="Delete Calendar"
OnClick="Button1_Click" />
<asp:Button ID="Button2" runat="server"
Text="Add Calendar"
OnClick="Button2_Click" />
</div>
</form>
</body>
</html>
설명
메서드는 AddWebPart 페이지에 새 동적 WebPart 컨트롤을 추가하고 이전에 페이지에서 닫힌 정적 또는 동적 컨트롤을 다시 여는 데 사용됩니다. 메서드를 호출하여 새 컨트롤을 추가하면 실제로 매개 변수에서 참조되는 컨트롤의 복사본이 webPart
만들어집니다. 컨트롤의 복사본에 대해 새 ID가 생성되므로 개발자는 메서드에서 반환된 컨트롤을 참조 WebPart 하여 새 ID 값을 가져와야 합니다. 메서드를 호출하여 이전에 닫힌 컨트롤을 다시 열면 매개 변수에서 참조하는 컨트롤에 대한 직접 참조를 webPart
반환합니다.
중요
메서드를 사용하면 예외가 AddWebPart 발생하므로 항상 속성에서 참조 WebPartManager.Controls 하는 컨트롤 컬렉션의 메서드가 아닌 Add 메서드를 사용하여 Add 페이지에 프로그래밍 방식으로 컨트롤을 추가 WebPart 해야 합니다. 컨트롤이 아닌 WebPart 컨트롤(즉, 런타임에 컨트롤로 래핑될 서버 컨트롤)을 추가하려면 먼저 메서드를 GenericWebPart 호출 CreateWebPart 하여 컨트롤을 만든 다음 메서드를 호출 AddWebPart 하여 컨트롤을 추가해야 합니다. 이 방법의 데모는 예제 섹션을 참조하세요.
적용 대상
추가 정보
.NET