Поделиться через


WebPartManager.CreateWebPart(Control) Метод

Определение

Помещает серверный элемент управления, который не является элементом управления WebPart, в оболочку из объекта GenericWebPart, чтобы этот элемент управления имел функциональные возможности веб-частей.

public:
 virtual System::Web::UI::WebControls::WebParts::GenericWebPart ^ CreateWebPart(System::Web::UI::Control ^ control);
public virtual System.Web.UI.WebControls.WebParts.GenericWebPart CreateWebPart (System.Web.UI.Control control);
abstract member CreateWebPart : System.Web.UI.Control -> System.Web.UI.WebControls.WebParts.GenericWebPart
override this.CreateWebPart : System.Web.UI.Control -> System.Web.UI.WebControls.WebParts.GenericWebPart
Public Overridable Function CreateWebPart (control As Control) As GenericWebPart

Параметры

control
Control

Серверный элемент управления, который не является элементом управления WebPart.

Возвращаемое значение

Объект GenericWebPart, который служит оболочкой для параметра control и позволяет последнему функционировать как настоящий элемент управления WebPart.

Примеры

В следующем примере кода показано использование CreateWebPart метода . Button2_Click method CreateWebPart В метод вызывается для переноса Calendar элемента управления в 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>

Комментарии

Метод CreateWebPart является основным механизмом для включения серверных элементов управления, которые не WebPart являются элементами управления, использовать те же функции, что WebPart и элемент управления, и, таким образом, в полной мере участвовать в приложениях веб-частей. Используя этот метод, разработчики значительно расширяют количество серверных элементов управления, которые они могут использовать в приложении веб-частей, так как можно использовать практически любой тип серверного элемента управления — стандартные элементы управления ASP.NET, пользовательские и пользовательские элементы управления.

Элемент WebPartManager управления также использует этот метод в двух других сценариях для упаковки серверных элементов управления объектом GenericWebPart . Когда пользователи добавляют серверные элементы управления на страницу с помощью ImportCatalogPart элемента управления , если импортированный элемент управления не является элементом WebPart управления, CreateWebPart вызывается метод . Кроме того, если серверные элементы управления объявляются в формате сохраняемости в пределах WebPartZoneBase зоны на веб-странице, метод вызывается для всех элементов управления, CreateWebPart которые не WebPart являются элементами управления.

При программном добавлении серверного элемента управления в зону типичный подход заключается в CreateWebPart использовании метода для переноса элемента управления в GenericWebPart объект , а затем вызова AddWebPart метода , чтобы добавить элемент управления в коллекцию всех WebPart элементов управления на странице, на которую ссылается WebParts свойство .

Примечания для тех, кто наследует этот метод

Этот метод можно переопределить для использования производного GenericWebPart класса вместо базового класса, предоставленного набором элементов управления веб-частей.

Применяется к

См. также раздел