다음을 통해 공유


WebPartManager.CatalogDisplayMode 필드

정의

컨트롤 카탈로그의 서버 컨트롤을 웹 페이지에 추가하는 데 사용되는 디스플레이 모드를 나타냅니다. 이 필드는 읽기 전용입니다.

public: static initonly System::Web::UI::WebControls::WebParts::WebPartDisplayMode ^ CatalogDisplayMode;
public static readonly System.Web.UI.WebControls.WebParts.WebPartDisplayMode CatalogDisplayMode;
 staticval mutable CatalogDisplayMode : System.Web.UI.WebControls.WebParts.WebPartDisplayMode
Public Shared ReadOnly CatalogDisplayMode As WebPartDisplayMode 

필드 값

예제

다음 코드 예제에서는 프로그래밍 방식으로 필드를 사용 CatalogDisplayMode 하는 방법을 보여 줍니다. 코드는 페이지에 대해 지원되는 표시 모드로 드롭다운 목록을 채웁니다. 이 경우 찾아보기, 디자인 및 카탈로그가 제공됩니다. 카탈로그 모드는 웹 페이지의 요소와 해당 자식 요소 때문에 <asp:CatalogZone> 사용할 수 있습니다. 메서드에서 Page_PreRender 코드는 현재 DisplayMode 속성이 로 설정되어 있는지 여부를 확인합니다 CatalogDisplayMode. 그렇다면 가 Label1 표시되고, 표시되지 않으면 Label1 숨겨집니다.

<%@ 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 Page_Init(object sender, EventArgs e)
  {
    foreach (WebPartDisplayMode mode in mgr.SupportedDisplayModes)
    {
      string modeName = mode.Name;
      if (mode.IsEnabled(mgr))
      {
        ListItem item = new ListItem(modeName, modeName);
        DisplayModeDropdown.Items.Add(item);
      }      
    }
  }

  protected void DisplayModeDropdown_SelectedIndexChanged(object 
    sender, EventArgs e)
  {
    String selectedMode = DisplayModeDropdown.SelectedValue;
    WebPartDisplayMode mode = 
      mgr.SupportedDisplayModes[selectedMode];
    if (mode != null)
      mgr.DisplayMode = mode;
  }

  protected void Page_PreRender(object sender, EventArgs e)
  {
    if (mgr.DisplayMode == WebPartManager.CatalogDisplayMode)
      Label1.Visible = true;
    else
      Label1.Visible = false;
  }
  
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>ASP.NET Example</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
      <asp:WebPartManager ID="mgr" runat="server">
      </asp:WebPartManager>
      <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:WebPartZone ID="WebPartZone2" runat="server" />
      <asp:CatalogZone ID="CatalogZone1" runat="server">
        <ZoneTemplate>
          <asp:DeclarativeCatalogPart 
            ID="DeclarativeCatalogPart1" 
            runat="server">
            <WebPartsTemplate>
              <asp:Calendar ID="Calendar1" runat="server" 
                Title="My Calendar" />             
            </WebPartsTemplate>
          </asp:DeclarativeCatalogPart>
        </ZoneTemplate>
      </asp:CatalogZone>
      <hr />
      <asp:Label ID="Label1" runat="server" 
        Text="Currently in Catalog Mode" 
        Font-Bold="true"
        Font-Size="125%" />
      <br />
      <asp:DropDownList ID="DisplayModeDropdown" 
        runat="server" 
        AutoPostBack="true"
        Width="120"
        OnSelectedIndexChanged=
        "DisplayModeDropdown_SelectedIndexChanged">
      </asp:DropDownList>
    </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 Page_Init(ByVal sender As Object, _
    ByVal e As EventArgs)
    Dim mode As WebPartDisplayMode
    For Each mode In mgr.SupportedDisplayModes
      Dim modeName As String = mode.Name
      If mode.IsEnabled(mgr) Then
        Dim item As ListItem = New ListItem(modeName, modeName)
        DisplayModeDropdown.Items.Add(item)
      End If
    Next
    
  End Sub

  Protected Sub DisplayModeDropdown_SelectedIndexChanged(ByVal _
    sender As Object, ByVal e As EventArgs)
    Dim selectedMode As String = _
      DisplayModeDropdown.SelectedValue
    Dim mode As WebPartDisplayMode = _
      mgr.SupportedDisplayModes(selectedMode)
    If mode IsNot Nothing Then
      mgr.DisplayMode = mode
    End If
  End Sub
  
  Protected Sub Page_PreRender(ByVal sender As Object, _
    ByVal e As System.EventArgs)
    If mgr.DisplayMode.Equals(WebPartManager.CatalogDisplayMode) Then
      Label1.Visible = True
    Else
      Label1.Visible = False
    End If
  End Sub
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
    <title>ASP.NET Example</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
      <asp:WebPartManager ID="mgr" runat="server">
      </asp:WebPartManager>
      <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:WebPartZone ID="WebPartZone2" runat="server" />
      <asp:CatalogZone ID="CatalogZone1" runat="server">
        <ZoneTemplate>
          <asp:DeclarativeCatalogPart 
            ID="DeclarativeCatalogPart1" 
            runat="server">
            <WebPartsTemplate>
              <asp:Calendar ID="Calendar1" runat="server" 
                Title="My Calendar" />             
            </WebPartsTemplate>
          </asp:DeclarativeCatalogPart>
        </ZoneTemplate>
      </asp:CatalogZone>
      <hr />
      <asp:Label ID="Label1" runat="server" 
        Text="Currently in Catalog Mode" 
        Font-Bold="true"
        Font-Size="125%" />
      <br />
      <asp:DropDownList ID="DisplayModeDropdown" 
        runat="server" 
        AutoPostBack="true"
        Width="120"
        OnSelectedIndexChanged=
        "DisplayModeDropdown_SelectedIndexChanged">
      </asp:DropDownList>
    </div>
    </form>
</body>
</html>

브라우저에서 페이지를 로드한 후에는 기본적으로 찾아보기 모드에 있습니다. 페이지의 레이블이 숨겨져 있습니다. 드롭다운 목록 컨트롤을 사용하여 페이지를 카탈로그 모드로 전환합니다. 메서드의 코드 Page_PreRender 로 인해 이제 레이블이 표시됩니다. 카탈로그에서 컨트롤을 선택하고 페이지의 두 영역 중 하나에 추가할 수 있습니다.

설명

CatalogDisplayMode 필드는 컨트롤에 의해 생성되고 포함된 사용자 지정 WebPartDisplayMode 개체를 참조합니다WebPartManager. 이 개체는 정적 개체이므로 컨트롤 인스턴스 없이 클래스를 WebPartManager 통해 직접 참조할 수 있습니다.

사용자가 페이지에 컨트롤을 추가하려는 경우 서버 컨트롤 카탈로그를 사용할 수 있는 경우 페이지를 (카탈로그 모드)로 전환할 CatalogDisplayMode 수 있으며 카탈로그 UI(사용자 인터페이스)가 나타납니다. 웹 파트 카탈로그의 UI는 영역 컨트롤에서 CatalogZoneBase 제공됩니다. 개발자는 디자인 타임에 페이지에 이 영역을 추가한 다음, 사용자가 런타임에 해당 컨트롤을 페이지에 추가할 수 있도록 영역에 서버 컨트롤을 추가합니다. 개발자가 이러한 컨트롤을 추가한 후 카탈로그 모드는 카탈로그 모드를 사용하도록 설정하는 데 필요한 컨트롤이 있으므로 페이지에서 지원되는 표시 모드가 됩니다.

사용자가 페이지를 카탈로그 모드로 전환하면 영역에 추가된 영역 및 모든 서버 컨트롤이 표시되고 사용자는 카탈로그에서 컨트롤을 선택하여 페이지에 추가하거나 페이지에서 컨트롤을 제거할 수 있습니다. 컨트롤이 페이지에 추가되면 일반 찾아보기 모드로 표시되고 페이지가 업데이트됩니다.

적용 대상

추가 정보