ImportCatalogPart Klass

Definition

Importerar en beskrivningsfil för en WebPart kontroll (eller annan ASP.NET serverkontroll som används som en WebPart-kontroll), så att användarna kan lägga till kontrollen på en webbsida med fördefinierade inställningar. Det går inte att ärva den här klassen.

public ref class ImportCatalogPart sealed : System::Web::UI::WebControls::WebParts::CatalogPart
public sealed class ImportCatalogPart : System.Web.UI.WebControls.WebParts.CatalogPart
type ImportCatalogPart = class
    inherit CatalogPart
Public NotInheritable Class ImportCatalogPart
Inherits CatalogPart
Arv

Exempel

Följande kodexempel visar hur du använder ImportCatalogPart kontrollen deklarativt och programmatiskt på en webbsida. Exemplet har fyra delar:

  • En användarkontroll som gör att du kan ändra visningslägen på en webbdelssida.

  • En webbsida som innehåller en CatalogZone kontroll och en ImportCatalogPart kontroll.

  • En källkodsfil som innehåller två anpassade WebPart kontroller.

  • En förklaring av hur exemplet fungerar när du läser in sidan i en webbläsare.

Den första delen av det här kodexemplet är användarkontrollen som gör det möjligt för användare att ändra visningslägen på en webbsida. Du bör placera följande källkod i en fil och ge den namnet Displaymodemenucs.ascx eller Displaymodemenuvb.ascx (beroende på vilket språk du använder). Mer information om visningslägen och en beskrivning av källkoden i den här kontrollen finns i Genomgång: Ändra visningslägen på en webbsida.

<%@ control language="C#" classname="DisplayModeMenuCS"%>
<script runat="server">
  
 // Use a field to reference the current WebPartManager.
  WebPartManager _manager;

  void Page_Init(object sender, EventArgs e)
  {
    Page.InitComplete += new EventHandler(InitComplete);
    
  }  

  void InitComplete(object sender, System.EventArgs e)
  {
    _manager = WebPartManager.GetCurrentWebPartManager(Page);

    String browseModeName = WebPartManager.BrowseDisplayMode.Name;

    // Fill the dropdown with the names of supported display modes.
    foreach (WebPartDisplayMode mode in _manager.SupportedDisplayModes)
    {
      String modeName = mode.Name;
      // Make sure a mode is enabled before adding it.
      if (mode.IsEnabled(_manager))
      {
        ListItem item = new ListItem(modeName, modeName);
        DisplayModeDropdown.Items.Add(item);
      }
    }

    // If shared scope is allowed for this user, display the scope-switching
    // UI and select the appropriate radio button for the current user scope.
    if (_manager.Personalization.CanEnterSharedScope)
    {
      Panel2.Visible = true;
      if (_manager.Personalization.Scope == PersonalizationScope.User)
        RadioButton1.Checked = true;
      else
        RadioButton2.Checked = true;
    }
    
  }
 
  // Change the page to the selected display mode.
  void DisplayModeDropdown_SelectedIndexChanged(object sender, EventArgs e)
  {
    String selectedMode = DisplayModeDropdown.SelectedValue;

    WebPartDisplayMode mode = _manager.SupportedDisplayModes[selectedMode];
    if (mode != null)
      _manager.DisplayMode = mode;
  }

  // Set the selected item equal to the current display mode.
  void Page_PreRender(object sender, EventArgs e)
  {
    ListItemCollection items = DisplayModeDropdown.Items;
    int selectedIndex = 
      items.IndexOf(items.FindByText(_manager.DisplayMode.Name));
    DisplayModeDropdown.SelectedIndex = selectedIndex;
  }

  // Reset all of a user's personalization data for the page.
  protected void LinkButton1_Click(object sender, EventArgs e)
  {
    _manager.Personalization.ResetPersonalizationState();
  }

  // If not in User personalization scope, toggle into it.
  protected void RadioButton1_CheckedChanged(object sender, EventArgs e)
  {
    if (_manager.Personalization.Scope == PersonalizationScope.Shared)
      _manager.Personalization.ToggleScope();
  }

  // If not in Shared scope, and if user is allowed, toggle the scope.
  protected void RadioButton2_CheckedChanged(object sender, EventArgs e)
  {
    if (_manager.Personalization.CanEnterSharedScope && 
        _manager.Personalization.Scope == PersonalizationScope.User)
      _manager.Personalization.ToggleScope();
  }
</script>
<div>
  <asp:Panel ID="Panel1" runat="server" 
    Borderwidth="1" 
    Width="230" 
    BackColor="lightgray"
    Font-Names="Verdana, Arial, Sans Serif" >
    <asp:Label ID="Label1" runat="server" 
      Text="&nbsp;Display Mode" 
      Font-Bold="true"
      Font-Size="8"
      Width="120" 
      AssociatedControlID="DisplayModeDropdown"/>
    <asp:DropDownList ID="DisplayModeDropdown" runat="server"  
      AutoPostBack="true" 
      Width="120"
      OnSelectedIndexChanged="DisplayModeDropdown_SelectedIndexChanged" />
    <asp:LinkButton ID="LinkButton1" runat="server"
      Text="Reset User State" 
      ToolTip="Reset the current user's personalization data for the page."
      Font-Size="8" 
      OnClick="LinkButton1_Click" />
    <asp:Panel ID="Panel2" runat="server" 
      GroupingText="Personalization Scope"
      Font-Bold="true"
      Font-Size="8" 
      Visible="false" >
      <asp:RadioButton ID="RadioButton1" runat="server" 
        Text="User" 
        AutoPostBack="true"
        GroupName="Scope" OnCheckedChanged="RadioButton1_CheckedChanged" />
      <asp:RadioButton ID="RadioButton2" runat="server" 
        Text="Shared" 
        AutoPostBack="true"
        GroupName="Scope" 
        OnCheckedChanged="RadioButton2_CheckedChanged" />
    </asp:Panel>
  </asp:Panel>
</div>
<%@ control language="vb" classname="DisplayModeMenuVB"%>
<script runat="server">
  ' Use a field to reference the current WebPartManager.
  Dim _manager As WebPartManager

  Sub Page_Init(ByVal sender As Object, ByVal e As EventArgs)
    AddHandler Page.InitComplete, AddressOf InitComplete
  End Sub

  Sub InitComplete(ByVal sender As Object, ByVal e As System.EventArgs)
    _manager = WebPartManager.GetCurrentWebPartManager(Page)
      
    Dim browseModeName As String = WebPartManager.BrowseDisplayMode.Name
      
    ' Fill the dropdown with the names of supported display modes.
    Dim mode As WebPartDisplayMode
    For Each mode In _manager.SupportedDisplayModes
      Dim modeName As String = mode.Name
      ' Make sure a mode is enabled before adding it.
      If mode.IsEnabled(_manager) Then
        Dim item As New ListItem(modeName, modeName)
        DisplayModeDropdown.Items.Add(item)
      End If
    Next mode
      
    ' If shared scope is allowed for this user, display the scope-switching
    ' UI and select the appropriate radio button for the current user scope.
    If _manager.Personalization.CanEnterSharedScope Then
      Panel2.Visible = True
      If _manager.Personalization.Scope = PersonalizationScope.User Then
        RadioButton1.Checked = True
      Else
        RadioButton2.Checked = True
      End If
    End If
   
  End Sub

  ' Change the page to the selected display mode.
  Sub DisplayModeDropdown_SelectedIndexChanged(ByVal sender As Object, _
    ByVal e As EventArgs)
    
    Dim selectedMode As String = DisplayModeDropdown.SelectedValue   
    Dim mode As WebPartDisplayMode = _
      _manager.SupportedDisplayModes(selectedMode)
    If Not (mode Is Nothing) Then
      _manager.DisplayMode = mode
    End If

  End Sub
   
  ' Set the selected item equal to the current display mode.
  Sub Page_PreRender(ByVal sender As Object, ByVal e As EventArgs)
    Dim items As ListItemCollection = DisplayModeDropdown.Items
    Dim selectedIndex As Integer = _
      items.IndexOf(items.FindByText(_manager.DisplayMode.Name))
    DisplayModeDropdown.SelectedIndex = selectedIndex

  End Sub

  ' Reset all of a user's personalization data for the page.
  Protected Sub LinkButton1_Click(ByVal sender As Object, _
    ByVal e As EventArgs)
    
    _manager.Personalization.ResetPersonalizationState()
    
  End Sub

  ' If not in User personalization scope, toggle into it.
  Protected Sub RadioButton1_CheckedChanged(ByVal sender As Object, _
    ByVal e As EventArgs)
    
    If _manager.Personalization.Scope = PersonalizationScope.Shared Then
      _manager.Personalization.ToggleScope()
    End If

  End Sub
   
  ' If not in Shared scope, and if user is allowed, toggle the scope.
  Protected Sub RadioButton2_CheckedChanged(ByVal sender As Object, _
    ByVal e As EventArgs)
    
    If _manager.Personalization.CanEnterSharedScope AndAlso _
      _manager.Personalization.Scope = PersonalizationScope.User Then
      _manager.Personalization.ToggleScope()
    End If

  End Sub

</script>
<div>
  <asp:Panel ID="Panel1" runat="server" 
    Borderwidth="1" 
    Width="230" 
    BackColor="lightgray"
    Font-Names="Verdana, Arial, Sans Serif" >
    <asp:Label ID="Label1" runat="server" 
      Text="&nbsp;Display Mode" 
      Font-Bold="true"
      Font-Size="8"
      Width="120" 
      AssociatedControlID="DisplayModeDropdown"/>
    <asp:DropDownList ID="DisplayModeDropdown" runat="server"  
      AutoPostBack="true" 
      Width="120"
      OnSelectedIndexChanged="DisplayModeDropdown_SelectedIndexChanged" />
    <asp:LinkButton ID="LinkButton1" runat="server"
      Text="Reset User State" 
      ToolTip="Reset the current user's personalization data for the page."
      Font-Size="8" 
      OnClick="LinkButton1_Click" />
    <asp:Panel ID="Panel2" runat="server" 
      GroupingText="Personalization Scope"
      Font-Bold="true"
      Font-Size="8" 
      Visible="false" >
      <asp:RadioButton ID="RadioButton1" runat="server" 
        Text="User" 
        AutoPostBack="true"
        GroupName="Scope" OnCheckedChanged="RadioButton1_CheckedChanged" />
      <asp:RadioButton ID="RadioButton2" runat="server" 
        Text="Shared" 
        AutoPostBack="true"
        GroupName="Scope" 
        OnCheckedChanged="RadioButton2_CheckedChanged" />
    </asp:Panel>
  </asp:Panel>
</div>

Den andra delen av kodexemplet är webbsidan. Överst på sidan finns två register direktiv, ett för användarkontrollen och ett för den kompilerade komponenten som innehåller de två anpassade WebPart kontrollerna. Observera att sidan har en deklarativ referens till ImportCatalogPart kontrollen, kapslad i rätt hierarki för deklarativa element. Observera också att flera egenskapsvärden tilldelas deklarativt för elementet <asp:importcatalogpart> . Button1_Click Metoden uppdaterar också ett antal egenskapsvärden på ImportCatalogPart kontrollen.

I sidans kontroll deklareras WebPartZone de två anpassade WebPart kontrollerna. Kontrollen <aspSample:userinfowebpart> har ett exportmode="all" attribut på sig. Det här attributet krävs för att användarna ska kunna exportera en beskrivningsfil för kontrollen, som sedan kan importeras av andra användare som vill importera kontrollen med hjälp av beskrivningsfilen.

Note

Om du vill att användare av ett webbdelsprogram ska kunna exportera en beskrivningsfil för WebPart kontroller måste du även aktivera exportfunktionen i webbprogrammet genom att lägga till ett enableExport="true" attribut till elementet <webParts> (som är underordnat elementet <system.web> ) i Web.config-filen. Export är inaktiverat som standard, så om du ännu inte har aktiverat export för ditt program redigerar du filen Web.config och gör det nu.

<%@ page language="c#" %>
<%@ register TagPrefix="uc1" 
  TagName="DisplayModeMenuCS" 
  Src="DisplayModeMenuCS.ascx" %>
<%@ register tagprefix="aspSample" 
  Namespace="Samples.AspNet.CS.Controls" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">

  // <snippet3>
  protected void Button1_Click(object sender, EventArgs e)
  {
    ImportCatalogPart1.Title = "Import Server Controls";
    ImportCatalogPart1.BrowseHelpText = "Enter the path to a "
      + "description file.";
    ImportCatalogPart1.UploadButtonText = "Upload Description";
    ImportCatalogPart1.UploadHelpText = "Upload a description file.";
    ImportCatalogPart1.ImportedPartLabelText = "Imported Controls";
    ImportCatalogPart1.PartImportErrorLabelText = "An error occurred " 
      + "during the import process.";

  }
  // </snippet3>
  
  protected void Page_Load(object sender, EventArgs e)
  {
    Button1.Visible = false;
  }

  protected void ImportCatalogPart1_PreRender(object sender, 
    EventArgs e)
  {
    Button1.Visible = true;
  }
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
  <head id="Head1" runat="server">
    <title>
      ImportCatalogPart Control
    </title>
  </head>
  <body>
    <form id="form1" runat="server">
      <asp:webpartmanager id="WebPartManager1" runat="server"  />
      <uc1:DisplayModeMenuCS ID="DisplayModeMenu1" runat="server" />
      <asp:webpartzone id="zone1" runat="server" >
        <PartTitleStyle BorderWidth="1" 
          Font-Names="Verdana, Arial"
          Font-Size="110%"
          BackColor="LightBlue" />
        <zonetemplate>
          <aspSample:TextDisplayWebPart 
            runat="server"   
            id="TextDisplayWebPart1" 
            title = "Text Display WebPart" /> 
          <aspsample:userinfowebpart id="userinfo1" runat="server" 
            Title="User Information" exportmode="all" />
        </zonetemplate>
      </asp:webpartzone> 
      <asp:EditorZone ID="EditorZone1" runat="server">
        <ZoneTemplate>
          <asp:PropertyGridEditorPart ID="PropertyGridEditorPart1" 
            runat="server" />
        </ZoneTemplate>
      </asp:EditorZone>
      <asp:CatalogZone ID="CatalogZone1" runat="server">
        <ZoneTemplate>
          <asp:ImportCatalogPart ID="ImportCatalogPart1" 
            runat="server" 
            Title="My ImportCatalogPart" 
            OnPreRender="ImportCatalogPart1_PreRender"
            BrowseHelpText="Type a path or browse to find a control's 
              description file." 
            UploadButtonText="Upload Description File" 
            UploadHelpText="Click the button to upload the description 
              file."
            ImportedPartLabelText="My User Information WebPart" 
            PartImportErrorLabelText="An error occurred while trying 
              to import a description file."  />
        </ZoneTemplate>
      </asp:CatalogZone>
      <hr />
      <asp:Button ID="Button1" runat="server" 
        Text="Update ImportCatalogPart" 
        OnClick="Button1_Click" />
    </form>
  </body>
</html>
<%@ page language="VB" %>
<%@ register TagPrefix="uc1" 
  TagName="DisplayModeMenuVB" 
  Src="DisplayModeMenuVB.ascx" %>
<%@ register tagprefix="aspSample" 
  Namespace="Samples.AspNet.VB.Controls" %>
  
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">

  ' <snippet3>
  Protected Sub Button1_Click(ByVal sender As Object, _
    ByVal e As EventArgs)
      ImportCatalogPart1.Title = "Import Server Controls"
      ImportCatalogPart1.BrowseHelpText = "Enter the path to a " _
        & "description file."
      ImportCatalogPart1.UploadButtonText = "Upload Description"
      ImportCatalogPart1.UploadHelpText = "Upload a description file."
      ImportCatalogPart1.ImportedPartLabelText = "Imported Controls"
      ImportCatalogPart1.PartImportErrorLabelText = "An error occurred " _
        & "during the import process."
  End Sub
  ' </snippet3>

  Protected Sub Page_Load(ByVal sender As Object, _
    ByVal e As EventArgs)
      Button1.Visible = false
  End Sub

  Protected Sub ImportCatalogPart1_PreRender(ByVal sender As Object, _
    ByVal e As EventArgs)
      Button1.Visible = true
  End Sub

</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>
      ImportCatalogPart Control
    </title>
  </head>
  <body>
    <form id="form1" runat="server">
      <asp:webpartmanager id="WebPartManager1" runat="server"  />
      <uc1:DisplayModeMenuVB ID="DisplayModeMenu1" runat="server" />
      <asp:webpartzone id="zone1" runat="server" >
        <PartTitleStyle BorderWidth="1" 
          Font-Names="Verdana, Arial"
          Font-Size="110%"
          BackColor="LightBlue" />
        <zonetemplate>
          <aspSample:TextDisplayWebPart 
            runat="server"   
            id="TextDisplayWebPart1" 
            title = "Text Display WebPart" /> 
          <aspsample:userinfowebpart id="userinfo1" runat="server" 
            Title="User Information" exportmode="all" />
        </zonetemplate>
      </asp:webpartzone> 
      <asp:EditorZone ID="EditorZone1" runat="server">
        <ZoneTemplate>
          <asp:PropertyGridEditorPart ID="PropertyGridEditorPart1" 
            runat="server" />
        </ZoneTemplate>
      </asp:EditorZone>
      <asp:CatalogZone ID="CatalogZone1" runat="server">
        <ZoneTemplate>
          <asp:ImportCatalogPart ID="ImportCatalogPart1" 
            runat="server" 
            Title="My ImportCatalogPart" 
            OnPreRender="ImportCatalogPart1_PreRender"
            BrowseHelpText="Type a path or browse to find a control's 
              description file." 
            UploadButtonText="Upload Description File" 
            UploadHelpText="Click the button to upload the description 
              file."
            ImportedPartLabelText="My User Information WebPart" 
            PartImportErrorLabelText="An error occurred while trying 
              to import a description file."  />
        </ZoneTemplate>
      </asp:CatalogZone>
      <hr />
      <asp:Button ID="Button1" runat="server" 
        Text="Update ImportCatalogPart" 
        OnClick="Button1_Click" />
    </form>
  </body>
</html>

Den tredje delen av kodexemplet är källkoden för de två WebPart kontrollerna. Observera att vissa egenskaper för dessa kontroller har markerats med attributet WebBrowsable . Detta gör det möjligt PropertyGridEditorPart för kontrollen att dynamiskt generera användargränssnittet (UI) för en användare att redigera dessa egenskaper när kontrollerna är i redigeringsläge. Egenskaperna markeras också med ett WebDisplayName attribut för att ange texten för etiketten som visas bredvid varje kontroll i redigeringsgränssnittet. För att kodexemplet ska köras måste du kompilera den här källkoden. Du kan kompilera den explicit och placera den resulterande sammansättningen i webbplatsens bin-mapp eller den globala sammansättningscacheminnet. Du kan också placera källkoden i webbplatsens App_Code mapp, där den kompileras dynamiskt vid körning. I det här kodexemplet används dynamisk kompilering. En genomgång som visar båda kompileringsmetoderna finns i Genomgång: Utveckla och använda en anpassad webbserverkontroll.

Den anpassade kontrollen som heter TextDisplayWebPart refereras till på webbsidan med ett <aspSample:TextDisplayWebPart> element. Den andra kontrollen, som kallas UserInfoWebPart, deklareras också på webbsidan från början, men du tar bort den senare för att visa möjligheten att importera en beskrivningsfil för en kontroll.

using System;
using System.Collections;
using System.ComponentModel;
using System.Drawing;
using System.Security.Permissions;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;

namespace Samples.AspNet.CS.Controls
{
  [AspNetHostingPermission(SecurityAction.Demand,
    Level = AspNetHostingPermissionLevel.Minimal)]
  [AspNetHostingPermission(SecurityAction.InheritanceDemand,
    Level = AspNetHostingPermissionLevel.Minimal)]
  public class UserInfoWebPart : WebPart
  {
    HttpServerUtility server = HttpContext.Current.Server;
    private String _userNickName = "Add a nickname.";
    private String _userPetName = "Add a pet name.";
    private DateTime _userSpecialDate = DateTime.Now;
    private Boolean _userIsCurrent = true;
    private JobTypeName _userJobType = JobTypeName.Unselected;
    public enum JobTypeName
    {
      Unselected = 0,
      Support = 1,
      Service = 2,
      Professional = 3, 
      Technical = 4,
      Manager = 5,
      Executive = 6
    }
    Label NickNameLabel;
    Label PetNickNameLabel;
    Label SpecialDateLabel;
    CheckBox IsCurrentCheckBox;
    Label JobTypeLabel;

    // Add the Personalizable and WebBrowsable attributes to the  
    // public properties, so that users can save property values  
    // and edit them with a PropertyGridEditorPart control.
    [Personalizable(), WebBrowsable, WebDisplayName("Nickname")]
    public String NickName
    {
      get 
      { 
        object o = ViewState["NickName"];
        if (o != null)
          return (string)o;
        else
          return _userNickName;        
      } 

      set { _userNickName = server.HtmlEncode(value); }
    }

    [Personalizable(), WebBrowsable, WebDisplayName("Pet Name")]
    public String PetName
    {
      get 
      { 
        object o = ViewState["PetName"];
        if (o != null)
          return (string)o;
        else
          return _userPetName;        
      }

      set { _userPetName = server.HtmlEncode(value); }
    }

    [Personalizable(), WebBrowsable(), WebDisplayName("Special Day")]
    public DateTime SpecialDay
    {
      get
      {
        object o = ViewState["SpecialDay"];
        if (o != null)
          return (DateTime)o;
        else
          return _userSpecialDate;
      }

      set { _userSpecialDate = value; }
    }

    [Personalizable(), WebBrowsable(), WebDisplayName("Job Type")]
    public JobTypeName UserJobType
    {
      get
      {
        object o = ViewState["UserJobType"];
        if (o != null)
          return (JobTypeName)o;
        else
          return _userJobType;
      }

      set { _userJobType = (JobTypeName)value; }
    }

    [Personalizable(), WebBrowsable(), WebDisplayName("Is Current")]
    public Boolean IsCurrent
    {
      get
      {
        object o = ViewState["IsCurrent"];
        if (o != null)
          return (Boolean)o;
        else
          return _userIsCurrent;
      }

      set { _userIsCurrent = value; }
    }

    protected override void CreateChildControls()
    {
      Controls.Clear();

      NickNameLabel = new Label();
      NickNameLabel.Text = this.NickName;
      SetControlAttributes(NickNameLabel);

      PetNickNameLabel = new Label();
      PetNickNameLabel.Text = this.PetName;
      SetControlAttributes(PetNickNameLabel);

      SpecialDateLabel = new Label();
      SpecialDateLabel.Text = this.SpecialDay.ToShortDateString();
      SetControlAttributes(SpecialDateLabel);

      IsCurrentCheckBox = new CheckBox();
      IsCurrentCheckBox.Checked = this.IsCurrent;
      SetControlAttributes(IsCurrentCheckBox);

      JobTypeLabel = new Label();
      JobTypeLabel.Text = this.UserJobType.ToString();
      SetControlAttributes(JobTypeLabel);

      ChildControlsCreated = true;
    }

    private void SetControlAttributes(WebControl ctl)
    {
      ctl.BackColor = Color.White;
      ctl.BorderWidth = 1;
      ctl.Width = 200;
      this.Controls.Add(ctl);
    }

    protected override void RenderContents(HtmlTextWriter writer)
    {
      writer.Write("Nickname:");
      writer.WriteBreak();
      NickNameLabel.RenderControl(writer);
      writer.WriteBreak();
      writer.Write("Pet Name:");
      writer.WriteBreak();
      PetNickNameLabel.RenderControl(writer);
      writer.WriteBreak();
      writer.Write("Special Date:");
      writer.WriteBreak();
      SpecialDateLabel.RenderControl(writer);
      writer.WriteBreak();
      writer.Write("Job Type:");
      writer.WriteBreak();
      JobTypeLabel.RenderControl(writer);
      writer.WriteBreak();
      writer.Write("Current:");
      writer.WriteBreak();
      IsCurrentCheckBox.RenderControl(writer);
    }
  }

  [AspNetHostingPermission(SecurityAction.Demand,
    Level = AspNetHostingPermissionLevel.Minimal)]
  [AspNetHostingPermission(SecurityAction.InheritanceDemand,
    Level = AspNetHostingPermissionLevel.Minimal)]
  public class TextDisplayWebPart : WebPart
  {
    private String _contentText = null;
    TextBox input;
    Label DisplayContent;
    Literal lineBreak;

    [Personalizable(), WebBrowsable]
    public String ContentText
    {
      get { return _contentText; }
      set { _contentText = value; }
    }

    protected override void CreateChildControls()
    {
      Controls.Clear();
      DisplayContent = new Label();
      DisplayContent.BackColor = Color.LightBlue;
      DisplayContent.Text = this.ContentText;
      this.Controls.Add(DisplayContent);

      lineBreak = new Literal();
      lineBreak.Text = @"<br />";
      Controls.Add(lineBreak);

      input = new TextBox();
      this.Controls.Add(input);
      Button update = new Button();
      update.Text = "Set Label Content";
      update.Click += new EventHandler(this.submit_Click);
      this.Controls.Add(update);
    }

    private void submit_Click(object sender, EventArgs e)
    {
      // Update the label string.
      if (!String.IsNullOrEmpty(input.Text))
      {
        _contentText = Context.Server.HtmlEncode(input.Text) + @"<br />";
        input.Text = String.Empty;
        DisplayContent.Text = this.ContentText;
      }
    }
  }
}
Imports System.Collections
Imports System.ComponentModel
Imports System.Drawing
Imports System.Security.Permissions
Imports System.Web
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Web.UI.WebControls.WebParts

Namespace Samples.AspNet.VB.Controls

  <AspNetHostingPermission(SecurityAction.Demand, _
    Level:=AspNetHostingPermissionLevel.Minimal)> _
  <AspNetHostingPermission(SecurityAction.InheritanceDemand, _
    Level:=AspNetHostingPermissionLevel.Minimal)> _
  Public Class UserInfoWebPart
    Inherits WebPart
    Private server As HttpServerUtility = HttpContext.Current.Server
    Private _userNickName As String = "Add a nickname."
    Private _userPetName As String = "Add a pet name."
    Private _userSpecialDate As DateTime = DateTime.Now
    Private _userIsCurrent As [Boolean] = True
    Private _userJobType As JobTypeName = JobTypeName.Unselected

    Public Enum JobTypeName
      Unselected = 0
      Support = 1
      Service = 2
      Professional = 3
      Technical = 4
      Manager = 5
      Executive = 6
    End Enum

    Private NickNameLabel As Label
    Private PetNickNameLabel As Label
    Private SpecialDateLabel As Label
    Private IsCurrentCheckBox As CheckBox
    Private JobTypeLabel As Label

    ' Add the Personalizable and WebBrowsable attributes to the  
    ' public properties, so that users can save property values  
    ' and edit them with a PropertyGridEditorPart control.

    <Personalizable(), WebBrowsable(), WebDisplayName("Nickname")> _
    Public Property NickName() As String
      Get
        Dim o As Object = ViewState("NickName")
        If Not (o Is Nothing) Then
          Return CStr(o)
        Else
          Return _userNickName
        End If
      End Get
      Set(ByVal value As String)
        _userNickName = server.HtmlEncode(value)
      End Set
    End Property

    <Personalizable(), WebBrowsable(), WebDisplayName("Pet Name")> _
    Public Property PetName() As String
      Get
        Dim o As Object = ViewState("PetName")
        If Not (o Is Nothing) Then
          Return CStr(o)
        Else
          Return _userPetName
        End If
      End Get
      Set(ByVal value As String)
        _userPetName = server.HtmlEncode(value)
      End Set
    End Property

    <Personalizable(), WebBrowsable(), WebDisplayName("Special Day")> _
    Public Property SpecialDay() As DateTime
      Get
        Dim o As Object = ViewState("SpecialDay")
        If Not (o Is Nothing) Then
          Return CType(o, DateTime)
        Else
          Return _userSpecialDate
        End If
      End Get

      Set(ByVal value As DateTime)
        _userSpecialDate = value
      End Set
    End Property

    <Personalizable(), WebBrowsable(), WebDisplayName("Job Type")> _
    Public Property UserJobType() As JobTypeName
      Get
        Dim o As Object = ViewState("UserJobType")
        If Not (o Is Nothing) Then
          Return CType(o, JobTypeName)
        Else
          Return _userJobType
        End If
      End Get
      Set(ByVal value As JobTypeName)
        _userJobType = CType(value, JobTypeName)
      End Set
    End Property

    <Personalizable(), WebBrowsable(), WebDisplayName("Is Current")> _
    Public Property IsCurrent() As [Boolean]
      Get
        Dim o As Object = ViewState("IsCurrent")
        If Not (o Is Nothing) Then
          Return CType(o, [Boolean])
        Else
          Return _userIsCurrent
        End If
      End Get
      Set(ByVal value As [Boolean])
        _userIsCurrent = value
      End Set
    End Property

    Protected Overrides Sub CreateChildControls()
      Controls.Clear()

      NickNameLabel = New Label()
      NickNameLabel.Text = Me.NickName
      SetControlAttributes(NickNameLabel)

      PetNickNameLabel = New Label()
      PetNickNameLabel.Text = Me.PetName
      SetControlAttributes(PetNickNameLabel)

      SpecialDateLabel = New Label()
      SpecialDateLabel.Text = Me.SpecialDay.ToShortDateString()
      SetControlAttributes(SpecialDateLabel)

      IsCurrentCheckBox = New CheckBox()
      IsCurrentCheckBox.Checked = Me.IsCurrent
      SetControlAttributes(IsCurrentCheckBox)

      JobTypeLabel = New Label()
      JobTypeLabel.Text = Me.UserJobType.ToString()
      SetControlAttributes(JobTypeLabel)

      ChildControlsCreated = True

    End Sub

    Private Sub SetControlAttributes(ByVal ctl As WebControl)
      ctl.BackColor = Color.White
      ctl.BorderWidth = 1
      ctl.Width = 200
      Me.Controls.Add(ctl)
    End Sub

    Protected Overrides Sub RenderContents(ByVal writer As HtmlTextWriter)
      writer.Write("Nickname:")
      writer.WriteBreak()
      NickNameLabel.RenderControl(writer)
      writer.WriteBreak()
      writer.Write("Pet Name:")
      writer.WriteBreak()
      PetNickNameLabel.RenderControl(writer)
      writer.WriteBreak()
      writer.Write("Special Date:")
      writer.WriteBreak()
      SpecialDateLabel.RenderControl(writer)
      writer.WriteBreak()
      writer.Write("Job Type:")
      writer.WriteBreak()
      JobTypeLabel.RenderControl(writer)
      writer.WriteBreak()
      writer.Write("Current:")
      writer.WriteBreak()
      IsCurrentCheckBox.RenderControl(writer)

    End Sub

  End Class


  <AspNetHostingPermission(SecurityAction.Demand, _
    Level:=AspNetHostingPermissionLevel.Minimal)> _
  <AspNetHostingPermission(SecurityAction.InheritanceDemand, _
    Level:=AspNetHostingPermissionLevel.Minimal)> _
  Public Class TextDisplayWebPart
    Inherits WebPart
    Private _contentText As String = Nothing
    Private _fontStyle As String = Nothing
    Private input As TextBox
    Private DisplayContent As Label
    Private lineBreak As Literal

    <Personalizable(), WebBrowsable()> _
    Public Property ContentText() As String
      Get
        Return _contentText
      End Get
      Set(ByVal value As String)
        _contentText = value
      End Set
    End Property

    Protected Overrides Sub CreateChildControls()
      Controls.Clear()
      DisplayContent = New Label()
      DisplayContent.BackColor = Color.LightBlue
      DisplayContent.Text = Me.ContentText
      Me.Controls.Add(DisplayContent)

      lineBreak = New Literal()
      lineBreak.Text = "<br />"
      Controls.Add(lineBreak)

      input = New TextBox()
      Me.Controls.Add(input)
      Dim update As New Button()
      update.Text = "Set Label Content"
      AddHandler update.Click, AddressOf Me.submit_Click
      Me.Controls.Add(update)

    End Sub

    Private Sub submit_Click(ByVal sender As Object, _
                             ByVal e As EventArgs)
      ' Update the label string.
      If String.IsNullOrEmpty(input.Text) = False Then
        _contentText = Context.Server.HtmlEncode(input.Text) + "<br />"
        input.Text = String.Empty
        DisplayContent.Text = Me.ContentText
      End If

    End Sub

  End Class

End Namespace

Kör nu kodexemplet. Läs in webbsidan i en webbläsare. Det första steget är att redigera UserInfoWebPart kontrollen. Använd listrutan Visningsläge och välj Redigera för att växla sidan till redigeringsläge. Klicka på verbmenyn i UserInfoWebPart kontrollen (nedåtpilen i namnlisten) och klicka sedan på Redigera. När redigeringsgränssnittet visas visas flera redigeringskontroller under den UserInfoWebPart kontroll som du kan använda för att redigera dess fältvärden. Redigera vissa fält, klicka på OK och använd sedan listrutan Visningsläge för att returnera sidan för att bläddra.

Det andra steget är att exportera en . WebPart-beskrivningsfil UserInfoWebPart för kontrollen. Klicka på verbmenyn på den anpassade kontrollen (representeras av nedåtpilen i namnlisten) och klicka på Exportera. Följ anvisningarna för att spara en . WebPart-beskrivningsfil för kontrollen. Stäng nu webbsidan och redigera sidkällan i ett redigeringsprogram. Ta bort kontrolldeklarationselementet <aspSample:userinfowebpart> och spara och stäng sedan filen. (Du gör det här steget för att simulera en användare som ännu inte har UserInfoWebPart kontrollen, så att du kan importera kontrollen till sidan).

Läs in webbsidan igen i en webbläsare. Kontrollen UserInfoWebPart bör inte visas eftersom du har tagit bort den. Använd listrutan Visningsläge och välj Katalog för att växla sidan till katalogläge. I kontrollen ImportCatalogPart klickar du på knappen Bläddra och bläddrar till . WebPart-fil som du skapade och klicka sedan på knappen Ladda upp . En referens till kontrollen bör visas med en kryssruta bredvid den. Markera kryssrutan och klicka sedan på Lägg till för att lägga till kontrollen på sidan.

När du är i den här vyn av sidan klickar du på knappen Uppdatera ImportCatalogPart längst ned på sidan för att se effekten av att programmatiskt uppdatera ett antal egenskapsvärden på ImportCatalogPart kontrollen. När du har klickat på knappen ser du hur de olika egenskaperna ändras i användargränssnittet.

Klicka slutligen på Stäng för att avsluta katalogläget och returnera sidan för att bläddra. Kontrollen UserInfoWebPart bör nu visas på sidan som innehåller de värden som den hade när du exporterade den tidigare.

Kommentarer

Kontrollen ImportCatalogPart gör det möjligt för användare att importera en beskrivningsfil som beskriver inställningar för en WebPart kontroll eller serverkontroll som en användare vill lägga till i en WebPartZoneBase zon.

När en användare har importerat en beskrivningsfil visas kontrollen WebPart som refereras i filen i ImportCatalogPart kontrollen och en användare kan lägga till kontrollen på sidan.

Beskrivningsfilen är inte samma som själva kontrollen. Det är en XML-fil som slutar med en . WebPart-tillägget och innehåller namn/värdepar – mestadels egenskapsvärden – som beskriver kontrollens tillstånd. Beskrivningsfilen skapas enligt ett angivet XML-format, enligt beskrivningen i avsnittet Web Parts Control Description Files(Beskrivningsfiler för webbdelar).

När det gäller kontrollen som beskrivningsfilen refererar till kan den antingen kompileras till en sammansättning eller vara en användarkontroll som definierats i en .ascx-fil. I båda fallen måste kontrollen som refereras i en importerad beskrivningsfil finnas på den webbserver som är värd för sidan som försöker importera kontrollen. Beskrivningsfilen refererar till kontrollnamnet och sammansättningen (eller filen) som innehåller kontrollen, och beskrivningsfilen innehåller inställningar som påverkar kontrollens egenskapsvärden, utseende och beteende.

Kontrollen ImportCatalogPart gör det möjligt för användare att dela inställningar för kontroller. En komplex kontroll kan ha många egenskaper och inställningar. På en typisk intranätplats i ett stort företag kan en anpassad WebPart kontroll till exempel innehålla ett antal egenskaper som innehåller värden som är specifika för användarnas miljö, till exempel deras databasanslutningar, avdelningsinformation och så vidare. Kontrollen kan också innehålla ett antal egenskaper som påverkar dess utseende. En användare kan anpassa kontrollen på en viss webbplats och få den att fungera korrekt, exportera en beskrivningsfil för kontrollen och sedan dela beskrivningsfilen med andra användare, som kan importera filen för att lägga till den fullständigt konfigurerade kontrollen till andra intranätplatser som de får anpassa. Så länge den kompilerade sammansättnings- eller användarkontrollfilen som innehåller kontrollen finns på den webbserver som är värd för deras webbplats, kan användarna lägga till kontrollen på andra webbplatser.

Den mekanism genom vilken användare importerar en beskrivningsfil (och därmed dess associerade serverkontroll) till en webbsida är kontrollen ImportCatalogPart , som en sidutvecklare måste lägga till på en webbsida. När en användare växlar sidan till katalogvisningsläget ImportCatalogPart visas kontrollen och användaren kan använda den här kontrollen för att bläddra till . WebPart-beskrivningsfil som motsvarar den serverkontroll som de vill importera. Efter användargränssnittet och instruktionerna som tillhandahålls av ImportCatalogPart kontrollen kan en användare lägga till den önskade serverkontrollen på webbsidan, med dess utseende och egenskaper fullständigt konfigurerade enligt beskrivningsfilen som anges i den importerade beskrivningsfilen.

Innan en WebPart kontrolls beskrivningsfil kan importeras måste en användare först skapa (exportera) filen baserat på en befintlig WebPart kontroll. En beskrivningsfil kan exporteras för en kontroll om följande villkor uppfylls:

  • Kontrollen har egenskaper markerade med attributet Personalizable .

  • Den Web.config filen har enableExport attributet värdet inställt true på för elementet <webParts> .

  • En utvecklare anger värdet ExportMode för egenskapen på kontrollen till ett annat värde än standardvärdet Noneför , som förbjuder export. Om egenskapsvärdet ExportMode är inställt på NonSensitiveDataexporteras inte alla egenskaper som innehåller en IsSensitive parameter med ett Personalizable attribut när en användare exporterar en beskrivningsfil. Detta gör det möjligt för kontrollutvecklare att förhindra att känsliga data, till exempel anslutningssträngar, exporteras i vissa situationer.

En användare kan exportera en kontroll som har aktiverats för export genom att klicka på exportverb som visas i verbmenyn i kontrollen och följa anvisningarna för att spara en . WebPart-beskrivningsfil för kontrollen. Andra användare kan sedan importera den här filen för att konfigurera sina egna instanser av kontrollen.

Klassen ImportCatalogPart innehåller flera egenskaper. Egenskapen BrowseHelpText innehåller text med instruktioner för användare när de bläddrar för att hitta beskrivningsfilen. Egenskapen ImportedPartLabelText innehåller text som fungerar som en etikett för den importerade kontrollen som den visas i ImportCatalogPart kontrollen. Innehåller PartImportErrorLabelText text som visas om ett fel inträffar när en kontrollbeskrivning importeras. Egenskapen Title åsidosätter basegenskapen för att tilldela en standardtitel för en ImportCatalogPart kontroll om utvecklaren inte tilldelar en rubrik. Egenskapen UploadButtonText innehåller texten för knappen som användaren klickar på för att ladda upp beskrivningsfilen, och UploadHelpText egenskapen innehåller instruktionerna för uppladdningsprocessen.

Klassen ImportCatalogPart innehåller också flera unika metoder. Metoden GetAvailableWebPartDescriptions hämtar ett WebPartDescription objekt för varje WebPart kontroll i katalogen, vilket gör att en ImportCatalogPart kontroll kan visa information om varje serverkontroll utan att behöva skapa en instans av den. Metoden GetWebPart hämtar en instans av en viss WebPart kontroll baserat på beskrivningen som skickas till metoden.

Det finns vissa inneboende risker med att använda ImportCatalogPart kontrollen. Ett exempel är möjligheten att importera skadliga data till webbprogrammet via de beskrivningsfiler som används för import. Om någon har placerat skadlig skriptkod som värdet för en strängegenskap i beskrivningsfilen kan skriptet eventuellt köras när en användare importerar beskrivningsfilen och lägger till den refererade serverkontrollen på en webbsida. För att minimera risken för att importera beskrivningsfiler med skadliga data bör serverkontroller som har strängtypade egenskaper alltid koda egenskapsdata. En annan risk innebär att importera typer via beskrivningsfiler (se Beskrivningsfiler för webbdelarskontroll). En obehörig användare kan skicka begäranden om att läsa in många sammansättningar i AppDomain, vilket resulterar i en överdriven mängd minne som förbrukas.

Om du vill undvika riskerna med import kan du inaktivera funktionen helt och hållet genom att inte använda importfunktionen eller ImportCatalogPart kontrollen. Eller så kan du begränsa vilka användare som har åtkomst till kontrollen. Du kan göra detta programmatiskt med hjälp av rollhantering (se Hantera auktorisering med hjälp av roller). När sidan till exempel läses in kan du testa om en användare har en viss roll, till exempel administratörsrollen. Om användaren är i rollen kan du programmatiskt lägga till ImportCatalogPart kontrollen på sidan för den användaren. Du kan också använda en deklarativ metod för att begränsa den uppsättning användare som kan använda ImportCatalogPart kontrollen. På din webbsida som innehåller en katalog kan du placera två CatalogZone kontroller: en för användare som kan importera och en för dem som inte kan det. Zonen för användare som kan importera skulle innehålla ImportCatalogPart kontrollen. Själva zonen kan placeras inuti en LoginView kontroll, vilket gör att du kan begränsa användningen av kontrollen i zonen till endast de autentiserade användare eller roller som du anger.

Konstruktorer

Name Description
ImportCatalogPart()

Initierar en ny instans av ImportCatalogPart klassen.

Egenskaper

Name Description
AccessKey

Hämtar eller anger åtkomstnyckeln som gör att du snabbt kan navigera till webbserverkontrollen.

(Ärvd från WebControl)
Adapter

Hämtar det webbläsarspecifika adaptern för kontrollen.

(Ärvd från Control)
AppRelativeTemplateSourceDirectory

Hämtar eller anger den programrelativa virtuella katalogen PageUserControl för eller -objektet som innehåller den här kontrollen.

(Ärvd från Control)
Attributes

Hämtar samlingen med godtyckliga attribut (endast för återgivning) som inte motsvarar egenskaperna i kontrollen.

(Ärvd från WebControl)
BackColor

Hämtar eller anger bakgrundsfärgen för webbserverkontrollen.

(Ärvd från WebControl)
BackImageUrl

Hämtar eller anger URL:en för bakgrundsbilden för panelkontrollen.

(Ärvd från Panel)
BindingContainer

Hämtar kontrollen som innehåller den här kontrollens databindning.

(Ärvd från Control)
BorderColor

Hämtar eller anger kantlinjefärgen för webbkontrollen.

(Ärvd från WebControl)
BorderStyle

Hämtar eller anger kantlinjeformatet för webbserverkontrollen.

(Ärvd från WebControl)
BorderWidth

Hämtar eller anger kantlinjebredden för webbserverkontrollen.

(Ärvd från WebControl)
BrowseHelpText

Hämtar eller anger ett textmeddelande som instruerar användarna att bläddra till platsen för en beskrivningsfil.

ChildControlsCreated

Hämtar ett värde som anger om serverkontrollens underordnade kontroller har skapats.

(Ärvd från Control)
ChromeState

Hämtar eller anger om en delkontroll är i ett minimerat eller normalt tillstånd.

(Ärvd från Part)
ChromeType

Hämtar eller anger vilken typ av kantlinje som ramar in en webbdelskontroll.

(Ärvd från Part)
ClientID

Hämtar kontroll-ID:t för HTML-kod som genereras av ASP.NET.

(Ärvd från Control)
ClientIDMode

Hämtar eller anger den algoritm som används för att generera värdet för ClientID egenskapen.

(Ärvd från Control)
ClientIDSeparator

Hämtar ett teckenvärde som representerar det avgränsartecken som används i egenskapen ClientID .

(Ärvd från Control)
Context

Hämtar objektet HttpContext som är associerat med serverkontrollen för den aktuella webbbegäran.

(Ärvd från Control)
Controls

Hämtar ett ControlCollection objekt som innehåller underordnade kontroller för en angiven serverkontroll i användargränssnittshierarkin.

(Ärvd från Part)
ControlStyle

Hämtar formatmallen för webbserverkontrollen. Den här egenskapen används främst av kontrollutvecklare.

(Ärvd från WebControl)
ControlStyleCreated

Hämtar ett värde som anger om ett Style objekt har skapats för egenskapen ControlStyle . Den här egenskapen används främst av kontrollutvecklare.

(Ärvd från WebControl)
CssClass

Hämtar eller anger css-klassen (Cascading Style Sheet) som återges av webbserverkontrollen på klienten.

(Ärvd från WebControl)
DataItemContainer

Hämtar en referens till namngivningscontainern om namngivningscontainern implementerar IDataItemContainer.

(Ärvd från Control)
DataKeysContainer

Hämtar en referens till namngivningscontainern om namngivningscontainern implementerar IDataKeysControl.

(Ärvd från Control)
DefaultButton

Hämtar eller anger vilken knapp i användargränssnittet som behandlas som standardknappen som tar emot fokus när formuläret som innehåller knappen återges. Den här egenskapen är inte avsedd att anropas från kod för sidutvecklare.

Description

Hämtar eller anger en kort fras som sammanfattar vad delkontrollen gör, för användning i Knappbeskrivningar och kataloger med delkontroller.

(Ärvd från Part)
DesignMode

Hämtar ett värde som anger om en kontroll används på en designyta.

(Ärvd från Control)
Direction

Hämtar eller anger i vilken riktning du vill visa kontroller som innehåller text i en Panel kontroll.

(Ärvd från Panel)
DisplayTitle

Hämtar en sträng som innehåller den faktiska aktuella rubriken för en CatalogPart kontroll.

(Ärvd från CatalogPart)
Enabled

Hämtar eller anger ett värde som anger om webbserverkontrollen är aktiverad.

(Ärvd från WebControl)
EnableTheming

Hämtar eller anger ett värde som anger om teman ska gälla för den här kontrollen.

(Ärvd från WebControl)
EnableViewState

Hämtar eller anger ett värde som anger om serverkontrollen bevarar sitt visningstillstånd och visningstillståndet för eventuella underordnade kontroller som den innehåller till den begärande klienten.

(Ärvd från Control)
Events

Hämtar en lista över händelsehanterardelegater för kontrollen. Den här egenskapen är skrivskyddad.

(Ärvd från Control)
Font

Hämtar teckensnittsegenskaperna som är associerade med webbserverkontrollen.

(Ärvd från WebControl)
ForeColor

Hämtar eller anger förgrundsfärgen (vanligtvis textens färg) för webbserverkontrollen.

(Ärvd från WebControl)
GroupingText

Hämtar eller anger undertexten för den grupp kontroller som finns i panelkontrollen.

(Ärvd från Panel)
HasAttributes

Hämtar ett värde som anger om kontrollen har attribut inställda.

(Ärvd från WebControl)
HasChildViewState

Hämtar ett värde som anger om den aktuella serverkontrollens underordnade kontroller har några sparade vytillståndsinställningar.

(Ärvd från Control)
Height

Hämtar eller anger höjden på webbserverkontrollen.

(Ärvd från WebControl)
HorizontalAlign

Hämtar eller anger den vågräta justeringen av innehållet i panelen.

(Ärvd från Panel)
ID

Hämtar eller anger den programmatiska identifierare som tilldelats serverkontrollen.

(Ärvd från Control)
IdSeparator

Hämtar det tecken som används för att separera kontrollidentifierare.

(Ärvd från Control)
ImportedPartLabelText

Hämtar eller anger text som visas när en användare importerar en beskrivningsfil för att representera eller beskriva den importerade kontrollen i katalogen med importerade kontroller.

IsChildControlStateCleared

Hämtar ett värde som anger om kontroller i den här kontrollen har kontrolltillstånd.

(Ärvd från Control)
IsEnabled

Hämtar ett värde som anger om kontrollen är aktiverad.

(Ärvd från WebControl)
IsTrackingViewState

Hämtar ett värde som anger om serverkontrollen sparar ändringar i visningstillståndet.

(Ärvd från Control)
IsViewStateEnabled

Hämtar ett värde som anger om visningstillstånd är aktiverat för den här kontrollen.

(Ärvd från Control)
LoadViewStateByID

Hämtar ett värde som anger om kontrollen deltar i inläsningen av dess visningstillstånd i ID stället för index.

(Ärvd från Control)
NamingContainer

Hämtar en referens till serverkontrollens namngivningscontainer, vilket skapar ett unikt namnområde för differentiering mellan serverkontroller med samma ID egenskapsvärde.

(Ärvd från Control)
Page

Hämtar en referens till den Page instans som innehåller serverkontrollen.

(Ärvd från Control)
Parent

Hämtar en referens till serverkontrollens överordnade kontroll i sidkontrollhierarkin.

(Ärvd från Control)
PartImportErrorLabelText

Hämtar eller anger ett felmeddelande som visas om ett fel inträffar under importprocessen.

RenderingCompatibility

Hämtar ett värde som anger den ASP.NET version som renderad HTML kommer att vara kompatibel med.

(Ärvd från Control)
ScrollBars

Hämtar eller anger synlighet och position för rullningslister i en Panel kontroll.

(Ärvd från Panel)
Site

Hämtar information om containern som är värd för den aktuella kontrollen när den återges på en designyta.

(Ärvd från Control)
SkinID

Hämtar eller ställer in huden för att applicera på kontrollen.

(Ärvd från WebControl)
Style

Hämtar en samling textattribut som återges som ett formatattribut på den yttre taggen för webbserverkontrollen.

(Ärvd från WebControl)
SupportsDisabledAttribute

Hämtar ett värde som anger om kontrollen ska ange disabled attributet för det renderade HTML-elementet till "inaktiverat" när kontrollens IsEnabled egenskap är false.

(Ärvd från Panel)
TabIndex

Hämtar eller anger flikindexet för webbserverkontrollen.

(Ärvd från WebControl)
TagKey

Hämtar värdet HtmlTextWriterTag som motsvarar den här webbserverkontrollen. Den här egenskapen används främst av kontrollutvecklare.

(Ärvd från WebControl)
TagName

Hämtar namnet på kontrolltaggen. Den här egenskapen används främst av kontrollutvecklare.

(Ärvd från WebControl)
TemplateControl

Hämtar eller anger en referens till mallen som innehåller den här kontrollen.

(Ärvd från Control)
TemplateSourceDirectory

Hämtar den virtuella katalogen för Page eller UserControl som innehåller den aktuella serverkontrollen.

(Ärvd från Control)
Title

Hämtar eller anger rubriken som visas i namnlisten för en ImportCatalogPart kontroll.

ToolTip

Hämtar eller anger texten som visas när muspekaren hovrar över webbserverkontrollen.

(Ärvd från WebControl)
UniqueID

Hämtar den unika, hierarkiskt kvalificerade identifieraren för serverkontrollen.

(Ärvd från Control)
UploadButtonText

Hämtar eller anger texten för kontrollen Button som initierar uppladdningen av en beskrivningsfil.

UploadHelpText

Hämtar eller anger texten i meddelandet som talar om för användaren hur en beskrivningsfil ska laddas upp.

ValidateRequestMode

Hämtar eller anger ett värde som anger om kontrollen kontrollerar klientindata från webbläsaren efter potentiellt farliga värden.

(Ärvd från Control)
ViewState

Hämtar en ordlista med tillståndsinformation som gör att du kan spara och återställa visningstillståndet för en serverkontroll över flera begäranden för samma sida.

(Ärvd från Control)
ViewStateIgnoresCase

Hämtar ett värde som anger om objektet StateBag är skiftlägesokänsligt.

(Ärvd från Control)
ViewStateMode

Hämtar eller anger visningstillståndsläget för den här kontrollen.

(Ärvd från Control)
Visible

Hämtar eller anger ett värde som anger om en serverkontroll återges som användargränssnitt på sidan.

(Ärvd från Control)
WebPartManager

Hämtar en referens till den aktuella instansen WebPartManager av klassen.

(Ärvd från CatalogPart)
Width

Hämtar eller anger bredden på webbserverkontrollen.

(Ärvd från WebControl)
Wrap

Hämtar eller anger ett värde som anger om innehållet omsluts i panelen.

(Ärvd från Panel)
Zone

Hämtar en referens till CatalogZoneBase zonen som innehåller en CatalogPart kontroll.

(Ärvd från CatalogPart)

Metoder

Name Description
AddAttributesToRender(HtmlTextWriter)

Lägger till information om bakgrundsbilden, justering, radbrytning och riktning i listan över attribut som ska återges.

(Ärvd från Panel)
AddedControl(Control, Int32)

Anropas efter att en underordnad kontroll har lagts till i ControlsControl objektets samling.

(Ärvd från Control)
AddParsedSubObject(Object)

Meddelar serverkontrollen att ett element, antingen XML eller HTML, parsades och lägger till elementet i serverkontrollens ControlCollection objekt.

(Ärvd från Control)
ApplyStyle(Style)

Kopierar alla icke-tomma element i det angivna formatet till webbkontrollen och skriver över alla befintliga formatelement i kontrollen. Den här metoden används främst av kontrollutvecklare.

(Ärvd från WebControl)
ApplyStyleSheetSkin(Page)

Tillämpar formategenskaperna som definierats i sidformatmallen på kontrollen.

(Ärvd från Control)
BeginRenderTracing(TextWriter, Object)

Påbörjar designtidsspårning av återgivningsdata.

(Ärvd från Control)
BuildProfileTree(String, Boolean)

Samlar in information om serverkontrollen och levererar den till egenskapen Trace som ska visas när spårning är aktiverat för sidan.

(Ärvd från Control)
ClearCachedClientID()

Anger det cachelagrade ClientID värdet till null.

(Ärvd från Control)
ClearChildControlState()

Tar bort kontrolltillståndsinformationen för serverkontrollens underordnade kontroller.

(Ärvd från Control)
ClearChildState()

Tar bort informationen om visningstillstånd och kontrolltillstånd för alla serverkontrollens underordnade kontroller.

(Ärvd från Control)
ClearChildViewState()

Tar bort visningstillståndsinformationen för alla serverkontrollens underordnade kontroller.

(Ärvd från Control)
ClearEffectiveClientIDMode()

Anger egenskapen för ClientIDMode den aktuella kontrollinstansen och för eventuella underordnade kontroller till Inherit.

(Ärvd från Control)
CopyBaseAttributes(WebControl)

Kopierar egenskaperna som inte kapslas in av Style objektet från den angivna webbserverkontrollen till den webbserverkontroll som den här metoden anropas från. Den här metoden används främst av kontrollutvecklare.

(Ärvd från WebControl)
CreateChildControls()

Anropas av det ASP.NET sidramverket för att meddela serverkontroller som använder kompositionsbaserad implementering för att skapa underordnade kontroller som de innehåller som förberedelse för att publicera tillbaka eller återge.

(Ärvd från Control)
CreateControlCollection()

Skapar ett nytt ControlCollection objekt som innehåller de underordnade kontrollerna (både literal och server) för serverkontrollen.

(Ärvd från Control)
CreateControlStyle()

Skapar ett formatobjekt som används internt av Panel kontrollen för att implementera alla formatrelaterade egenskaper.

(Ärvd från Panel)
DataBind()

Binder en datakälla till den anropade serverkontrollen och alla dess underordnade kontroller.

(Ärvd från Part)
DataBind(Boolean)

Binder en datakälla till den anropade serverkontrollen och alla dess underordnade kontroller med ett alternativ för att skapa händelsen DataBinding .

(Ärvd från Control)
DataBindChildren()

Binder en datakälla till serverkontrollens underordnade kontroller.

(Ärvd från Control)
Dispose()

Gör att en serverkontroll kan utföra slutlig rensning innan den frigörs från minnet.

(Ärvd från Control)
EndRenderTracing(TextWriter, Object)

Avslutar designtidsspårning av återgivningsdata.

(Ärvd från Control)
EnsureChildControls()

Avgör om serverkontrollen innehåller underordnade kontroller. Om den inte gör det skapar den underordnade kontroller.

(Ärvd från Control)
EnsureID()

Skapar en identifierare för kontroller som inte har tilldelats någon identifierare.

(Ärvd från Control)
Equals(Object)

Avgör om det angivna objektet är lika med det aktuella objektet.

(Ärvd från Object)
FindControl(String, Int32)

Söker i den aktuella namngivningscontainern efter en serverkontroll med det angivna id och ett heltal som anges i parametern pathOffset , vilket underlättar sökningen. Du bör inte åsidosätta den här versionen av FindControl metoden.

(Ärvd från Control)
FindControl(String)

Söker i den aktuella namngivningscontainern efter en serverkontroll med den angivna id parametern.

(Ärvd från Control)
Focus()

Anger indatafokus till en kontroll.

(Ärvd från Control)
GetAvailableWebPartDescriptions()

Returnerar en samling beskrivningar av de tillgängliga WebPart kontrollerna i en katalog.

GetDesignModeState()

Hämtar det aktuella tillståndet för en CatalogPart kontrolls överordnade zon.

(Ärvd från CatalogPart)
GetHashCode()

Fungerar som standard-hash-funktion.

(Ärvd från Object)
GetRouteUrl(Object)

Hämtar url:en som motsvarar en uppsättning routningsparametrar.

(Ärvd från Control)
GetRouteUrl(RouteValueDictionary)

Hämtar url:en som motsvarar en uppsättning routningsparametrar.

(Ärvd från Control)
GetRouteUrl(String, Object)

Hämtar url:en som motsvarar en uppsättning vägparametrar och ett vägnamn.

(Ärvd från Control)
GetRouteUrl(String, RouteValueDictionary)

Hämtar url:en som motsvarar en uppsättning vägparametrar och ett vägnamn.

(Ärvd från Control)
GetType()

Hämtar den aktuella instansen Type .

(Ärvd från Object)
GetUniqueIDRelativeTo(Control)

Returnerar den prefixade delen av UniqueID egenskapen för den angivna kontrollen.

(Ärvd från Control)
GetWebPart(WebPartDescription)

Returnerar en referens till en WebPart kontroll baserat på värdena i beskrivningen som skickas till metoden.

HasControls()

Avgör om serverkontrollen innehåller några underordnade kontroller.

(Ärvd från Control)
HasEvents()

Returnerar ett värde som anger om händelser har registrerats för kontrollen eller underordnade kontroller.

(Ärvd från Control)
IsLiteralContent()

Avgör om serverkontrollen endast innehåller literalinnehåll.

(Ärvd från Control)
LoadControlState(Object)

Återställer kontrolltillståndsinformation från en begäran från föregående sida som sparades av SaveControlState() metoden.

(Ärvd från Control)
LoadViewState(Object)

Återställer visningstillståndsinformation från en tidigare begäran som sparades med SaveViewState() metoden.

(Ärvd från WebControl)
MapPathSecure(String)

Hämtar den fysiska sökväg som en virtuell sökväg, antingen absolut eller relativ, mappar till.

(Ärvd från Control)
MemberwiseClone()

Skapar en ytlig kopia av den aktuella Object.

(Ärvd från Object)
MergeStyle(Style)

Kopierar alla icke-tomma element i det angivna formatet till webbkontrollen, men skriver inte över några befintliga formatelement i kontrollen. Den här metoden används främst av kontrollutvecklare.

(Ärvd från WebControl)
OnBubbleEvent(Object, EventArgs)

Avgör om händelsen för serverkontrollen skickas upp på sidans UI-serverkontrollhierarki.

(Ärvd från Control)
OnDataBinding(EventArgs)

Genererar händelsen DataBinding .

(Ärvd från Control)
OnInit(EventArgs)

Genererar händelsen Init .

(Ärvd från Control)
OnLoad(EventArgs)

Genererar händelsen Load .

(Ärvd från Control)
OnPreRender(EventArgs)

Genererar händelsen PreRender .

(Ärvd från CatalogPart)
OnUnload(EventArgs)

Genererar händelsen Unload .

(Ärvd från Control)
OpenFile(String)

Hämtar en Stream som används för att läsa en fil.

(Ärvd från Control)
RaiseBubbleEvent(Object, EventArgs)

Tilldelar alla källor till händelsen och dess information till kontrollens överordnade.

(Ärvd från Control)
RemovedControl(Control)

Anropas efter att en underordnad Controls kontroll har tagits bort från objektets Control samling.

(Ärvd från Control)
Render(HtmlTextWriter)

Renderar kontrollen till den angivna HTML-skrivaren.

(Ärvd från WebControl)
RenderBeginTag(HtmlTextWriter)

Renderar HTML-öppningstaggen för Panel kontrollen till den angivna skrivaren.

(Ärvd från Panel)
RenderChildren(HtmlTextWriter)

Matar ut innehållet i en serverkontrolls underordnade objekt till ett angivet HtmlTextWriter objekt som skriver innehållet som ska återges på klienten.

(Ärvd från Control)
RenderContents(HtmlTextWriter)

Renderar innehållet i kontrollen till den angivna skrivaren. Den här metoden används främst av kontrollutvecklare.

(Ärvd från WebControl)
RenderControl(HtmlTextWriter, ControlAdapter)

Matar ut serverkontrollinnehåll till ett angivet HtmlTextWriter objekt med hjälp av ett angivet ControlAdapter objekt.

(Ärvd från Control)
RenderControl(HtmlTextWriter)

Matar ut serverkontrollinnehåll till ett angivet HtmlTextWriter objekt och lagrar spårningsinformation om kontrollen om spårning är aktiverat.

(Ärvd från Control)
RenderEndTag(HtmlTextWriter)

Renderar HTML-avslutande taggen för Panel kontrollen till den angivna skrivaren.

(Ärvd från Panel)
ResolveAdapter()

Hämtar kontrollkortet som ansvarar för att återge den angivna kontrollen.

(Ärvd från Control)
ResolveClientUrl(String)

Hämtar en URL som kan användas av webbläsaren.

(Ärvd från Control)
ResolveUrl(String)

Konverterar en URL till en som kan användas på den begärande klienten.

(Ärvd från Control)
SaveControlState()

Sparar alla ändringar i serverkontrolltillståndet som har inträffat sedan sidan publicerades tillbaka till servern.

(Ärvd från Control)
SaveViewState()

Sparar alla tillstånd som ändrades efter TrackViewState() att metoden anropades.

(Ärvd från WebControl)
SetDesignModeState(IDictionary)

Anger designtidsdata för en kontroll.

(Ärvd från CatalogPart)
SetRenderMethodDelegate(RenderMethod)

Tilldelar ett händelsehanterardelegat för att återge serverkontrollen och dess innehåll till den överordnade kontrollen.

(Ärvd från Control)
SetTraceData(Object, Object, Object)

Anger spårningsdata för designtidsspårning av återgivningsdata, med hjälp av det spårade objektet, spårningsdatanyckeln och värdet för spårningsdata.

(Ärvd från Control)
SetTraceData(Object, Object)

Anger spårningsdata för designtidsspårning av återgivningsdata med hjälp av spårningsdatanyckeln och värdet för spårningsdata.

(Ärvd från Control)
ToString()

Returnerar en sträng som representerar det aktuella objektet.

(Ärvd från Object)
TrackViewState()

Gör att kontrollen spårar ändringar i dess visningstillstånd så att de kan lagras i objektets ViewState egenskap.

(Ärvd från WebControl)

Händelser

Name Description
DataBinding

Inträffar när serverkontrollen binder till en datakälla.

(Ärvd från Control)
Disposed

Inträffar när en serverkontroll frigörs från minnet, vilket är den sista fasen i serverkontrolllivscykeln när en ASP.NET sida begärs.

(Ärvd från Control)
Init

Inträffar när serverkontrollen initieras, vilket är det första steget i dess livscykel.

(Ärvd från Control)
Load

Inträffar när serverkontrollen läses in i Page objektet.

(Ärvd från Control)
PreRender

Inträffar efter att objektet Control har lästs in men före återgivningen.

(Ärvd från Control)
Unload

Inträffar när serverkontrollen tas bort från minnet.

(Ärvd från Control)

Explicita gränssnittsimplementeringar

Name Description
IAttributeAccessor.GetAttribute(String)

Hämtar ett attribut för webbkontrollen med det angivna namnet.

(Ärvd från WebControl)
IAttributeAccessor.SetAttribute(String, String)

Anger ett attribut för webbkontrollen till det angivna namnet och värdet.

(Ärvd från WebControl)
ICompositeControlDesignerAccessor.RecreateChildControls()

Gör att utvecklaren av en designer för en sammansatt delkontroll kan återskapa kontrollens underordnade kontroller på designytan.

(Ärvd från Part)
IControlBuilderAccessor.ControlBuilder

En beskrivning av den här medlemmen finns i ControlBuilder.

(Ärvd från Control)
IControlDesignerAccessor.GetDesignModeState()

En beskrivning av den här medlemmen finns i GetDesignModeState().

(Ärvd från Control)
IControlDesignerAccessor.SetDesignModeState(IDictionary)

En beskrivning av den här medlemmen finns i SetDesignModeState(IDictionary).

(Ärvd från Control)
IControlDesignerAccessor.SetOwnerControl(Control)

En beskrivning av den här medlemmen finns i SetOwnerControl(Control).

(Ärvd från Control)
IControlDesignerAccessor.UserData

En beskrivning av den här medlemmen finns i UserData.

(Ärvd från Control)
IDataBindingsAccessor.DataBindings

En beskrivning av den här medlemmen finns i DataBindings.

(Ärvd från Control)
IDataBindingsAccessor.HasDataBindings

En beskrivning av den här medlemmen finns i HasDataBindings.

(Ärvd från Control)
IExpressionsAccessor.Expressions

En beskrivning av den här medlemmen finns i Expressions.

(Ärvd från Control)
IExpressionsAccessor.HasExpressions

En beskrivning av den här medlemmen finns i HasExpressions.

(Ärvd från Control)
IParserAccessor.AddParsedSubObject(Object)

En beskrivning av den här medlemmen finns i AddParsedSubObject(Object).

(Ärvd från Control)

Tilläggsmetoder

Name Description
EnableDynamicData(INamingContainer, Type, IDictionary<String,Object>)

Aktiverar dynamiskt databeteende för den angivna datakontrollen.

EnableDynamicData(INamingContainer, Type, Object)

Aktiverar dynamiskt databeteende för den angivna datakontrollen.

EnableDynamicData(INamingContainer, Type)

Aktiverar dynamiskt databeteende för den angivna datakontrollen.

FindDataSourceControl(Control)

Returnerar datakällan som är associerad med datakontrollen för den angivna kontrollen.

FindFieldTemplate(Control, String)

Returnerar fältmallen för den angivna kolumnen i den angivna kontrollens namngivningscontainer.

FindMetaTable(Control)

Returnerar metatabellobjektet för den innehållande datakontrollen.

GetDefaultValues(INamingContainer)

Hämtar insamlingen av standardvärdena för den angivna datakontrollen.

GetMetaTable(INamingContainer)

Hämtar tabellmetadata för den angivna datakontrollen.

SetMetaTable(INamingContainer, MetaTable, IDictionary<String,Object>)

Anger tabellmetadata och standardvärdemappning för den angivna datakontrollen.

SetMetaTable(INamingContainer, MetaTable, Object)

Anger tabellmetadata och standardvärdemappning för den angivna datakontrollen.

SetMetaTable(INamingContainer, MetaTable)

Anger tabellmetadata för den angivna datakontrollen.

TryGetMetaTable(INamingContainer, MetaTable)

Avgör om tabellmetadata är tillgängliga.

Gäller för

Se även