WebPartVerb Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Fornece um elemento de interface do usuário interativo que permite aos usuários executar ações em uma página de Web Parts.
public ref class WebPartVerb : System::Web::UI::IStateManager
[System.ComponentModel.TypeConverter(typeof(System.Web.UI.WebControls.EmptyStringExpandableObjectConverter))]
public class WebPartVerb : System.Web.UI.IStateManager
[<System.ComponentModel.TypeConverter(typeof(System.Web.UI.WebControls.EmptyStringExpandableObjectConverter))>]
type WebPartVerb = class
interface IStateManager
Public Class WebPartVerb
Implements IStateManager
- Herança
-
WebPartVerb
- Atributos
- Implementações
Exemplos
O exemplo de código a seguir mostra como criar um objeto personalizado WebPartVerb e uma zona personalizada que usa o OnCreateVerbs método para adicionar o verbo ao menu de verbos de cada WebPart controle contido na zona. Há quatro partes no exemplo de código:
Um arquivo de origem que contém um controle personalizado WebPart simples que exibe algum texto.
Um arquivo de origem que contém um objeto personalizado WebPartVerb e uma zona personalizada WebPartZoneBase simples que substitui o OnCreateVerbs método para adicionar o verbo personalizado aos WebPart controles na zona.
Uma página da Web que contém a zona personalizada e o controle personalizado WebPart .
Uma explicação de como o exemplo funciona.
A primeira parte do exemplo de código contém o código-fonte que cria um controle simples WebPart que exibe algum texto. Para que o exemplo de código seja executado, você deve compilar esse código-fonte. Você pode compilá-lo explicitamente e colocar o assembly resultante na pasta Bin do site ou no cache de assembly global. Como alternativa, você pode colocar o código-fonte na pasta App_Code do site, na qual ele será compilado dinamicamente em tempo de execução. Este exemplo de código usa a abordagem de compilação dinâmica. Para obter um passo a passo que demonstra como compilar, consulte Passo a passo : desenvolvendo e usando um controle de servidor Web personalizado.
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Security.Permissions;
using System.Collections.Generic;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
namespace Samples.AspNet.CS.Controls
{
// This code snippet creates a simple Web Part control.
[AspNetHostingPermission(SecurityAction.Demand,
Level = AspNetHostingPermissionLevel.Minimal)]
[AspNetHostingPermission(SecurityAction.InheritanceDemand,
Level = AspNetHostingPermissionLevel.Minimal)]
public class SimpleControl : WebPart
{
private String _text = "Simple control text";
public string Text
{
get
{
if (_text != null)
return _text;
else
return string.Empty;
}
set { _text = value; }
}
protected override void Render(System.Web.UI.HtmlTextWriter
writer)
{
writer.Write(this.Text);
}
}
}
Imports System.Data
Imports System.Configuration
Imports System.Web
Imports System.Web.Security
Imports System.Collections.Generic
Imports System.Security.Permissions
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Web.UI.WebControls.WebParts
Imports System.Web.UI.HtmlControls
' This code snippet creates a simple Web Part control.
Namespace Samples.AspNet.VB.Controls
<AspNetHostingPermission(SecurityAction.Demand, _
Level:=AspNetHostingPermissionLevel.Minimal)> _
<AspNetHostingPermission(SecurityAction.InheritanceDemand, _
Level:=AspNetHostingPermissionLevel.Minimal)> _
Public Class SimpleControl
Inherits System.Web.UI.WebControls.WebParts.WebPart
Private _text As String = "Simple control text"
Public Property [Text]() As String
Get
If Not (_text Is Nothing) Then
Return _text
Else
Return String.Empty
End If
End Get
Set(ByVal value As String)
_text = value
End Set
End Property
Protected Overrides Sub Render(ByVal writer _
As System.Web.UI.HtmlTextWriter)
writer.Write(Me.Text)
End Sub
End Class
End Namespace
A segunda parte do exemplo contém o código-fonte para criar a zona personalizada e o objeto personalizado WebPartVerb . Observe que a zona substitui o OnCreateVerbs método para adicionar o verbo personalizado a quaisquer WebPart controles na zona. O verbo é adicionado por padrão ao menu de verbos dos controles. Observe que, no código do verbo personalizado, o construtor do verbo usa um manipulador de cliques do servidor e que o método chamado cria uma cópia completa de qualquer controle herdado diretamente da WebPart classe , adicionando a cópia recém-criada à mesma zona. Como a primeira parte do exemplo de código, esse código-fonte deve ser compilado e, neste exemplo, o arquivo de origem foi colocado em uma subpasta App_Code a ser compilada dinamicamente.
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Security.Permissions;
using System.Collections.Generic;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
namespace Samples.AspNet.CS.Controls
{
/*
This code sample creates a Web Part zone and adds the
"Copy Web Part" verb to any control in the zone.
*/
[AspNetHostingPermission(SecurityAction.Demand,
Level = AspNetHostingPermissionLevel.Minimal)]
[AspNetHostingPermission(SecurityAction.InheritanceDemand,
Level = AspNetHostingPermissionLevel.Minimal)]
public class ZoneWithAddedVerb : WebPartZone
{
protected override void OnCreateVerbs(WebPartVerbsEventArgs e)
{
List<WebPartVerb> newVerbs = new List<WebPartVerb>();
newVerbs.Add(new CopyWebPartVerb(CopyWebPartToNewOne));
e.Verbs = new WebPartVerbCollection(e.Verbs,newVerbs);
base.OnCreateVerbs(e);
}
void CopyWebPartToNewOne(object sender, WebPartEventArgs e)
{
WebPartManager wpmgr =
WebPartManager.GetCurrentWebPartManager(Page);
System.Web.UI.WebControls.WebParts.WebPart wp;
Type tp = e.WebPart.GetType();
wp = (System.Web.UI.WebControls.WebParts.WebPart)Activator.CreateInstance(tp);
wpmgr.AddWebPart(wp, e.WebPart.Zone, e.WebPart.ZoneIndex + 1);
}
}
[AspNetHostingPermission(SecurityAction.Demand,
Level = AspNetHostingPermissionLevel.Minimal)]
[AspNetHostingPermission(SecurityAction.InheritanceDemand,
Level = AspNetHostingPermissionLevel.Minimal)]
internal class CopyWebPartVerb : WebPartVerb
{
private const String _copyWebPartImageUrl = "~/CopyVerb.ico";
internal CopyWebPartVerb(WebPartEventHandler serverClickHandler) :
base("MyVerb", serverClickHandler)
{ }
public override string Text
{
get { return "Copy Web Part"; }
set { ;}
}
public override string Description
{
get { return "This verb will copy this web part control " +
"to a new one below"; }
set { ; }
}
public override bool Enabled
{
get { return base.Enabled; }
set { base.Enabled = value; }
}
public override string ImageUrl
{
get { return _copyWebPartImageUrl; }
set { ; }
}
}
}
Imports System.Data
Imports System.Configuration
Imports System.Web
Imports System.Web.Security
Imports System.Security.Permissions
Imports System.Collections.Generic
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Web.UI.WebControls.WebParts
Imports System.Web.UI.HtmlControls
' This code sample creates a Web Part zone and adds the
' "Copy Web Part" verb to any control in the zone.
Namespace Samples.AspNet.VB.Controls
<AspNetHostingPermission(SecurityAction.Demand, _
Level:=AspNetHostingPermissionLevel.Minimal)> _
<AspNetHostingPermission(SecurityAction.InheritanceDemand, _
Level:=AspNetHostingPermissionLevel.Minimal)> _
Public Class ZoneWithAddedVerb
Inherits WebPartZone
'public class ExtendedWebPartZoneBase
Protected Overrides Sub OnCreateVerbs(ByVal e _
As WebPartVerbsEventArgs)
Dim newVerbs As List(Of WebPartVerb) = _
New List(Of WebPartVerb)
newVerbs.Add(New CopyWebPartVerb(AddressOf CopyWebPartToNewOne))
e.Verbs = New WebPartVerbCollection(e.Verbs, newVerbs)
MyBase.OnCreateVerbs(e)
End Sub
Sub CopyWebPartToNewOne(ByVal sender As Object, _
ByVal e As WebPartEventArgs)
Dim wpmgr As WebPartManager = _
WebPartManager.GetCurrentWebPartManager(Page)
Dim wp As System.Web.UI.WebControls.WebParts.WebPart
Dim tp As Type = e.WebPart.GetType()
wp = CType(Activator.CreateInstance(tp), _
System.Web.UI.WebControls.WebParts.WebPart)
wpmgr.AddWebPart(wp, e.WebPart.Zone, e.WebPart.ZoneIndex + 1)
End Sub
End Class
<AspNetHostingPermission(SecurityAction.Demand, _
Level:=AspNetHostingPermissionLevel.Minimal)> _
<AspNetHostingPermission(SecurityAction.InheritanceDemand, _
Level:=AspNetHostingPermissionLevel.Minimal)> _
Friend Class CopyWebPartVerb
Inherits WebPartVerb
Private Const _copyWebPartImageUrl As String = "~/CopyVerb.ico"
Friend Sub New(ByVal serverClickHandler As WebPartEventHandler)
MyBase.New("MyVerb", serverClickHandler)
End Sub
Public Overrides Property [Text]() As String
Get
Return "Copy Web Part"
End Get
Set(ByVal value As String)
End Set
End Property
Public Overrides Property Description() As String
Get
Return "This verb will copy this web part control to a " _
& "new one below"
End Get
Set(ByVal value As String)
End Set
End Property
Public Overrides Property Enabled() As Boolean
Get
Return MyBase.Enabled
End Get
Set(ByVal value As Boolean)
MyBase.Enabled = value
End Set
End Property
Public Overrides Property ImageUrl() As String
Get
Return Me._copyWebPartImageUrl
End Get
Set(ByVal value As String)
End Set
End Property
End Class
End Namespace
A terceira parte do exemplo de código é a página da Web que hospeda os controles. Observe que há uma Register
diretiva perto da parte superior da página para declarar o namespace dos controles personalizados. Nenhum assembly é declarado porque este exemplo usa compilação dinâmica. O controle personalizado WebPart é declarado dentro da zona personalizada. Você também pode declarar outros WebPart controles nessa zona, e o verbo personalizado também seria adicionado aos menus de verbos.
<%@ Page Language="C#" %>
<%@ Register TagPrefix="verbsample"
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">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<asp:WebPartManager ID="WebPartManager1" runat="server" />
<verbsample:ZoneWithAddedVerb id="ZoneWithAddedVerb1"
HeaderText="Zone with Added Verb" runat="server">
<ZoneTemplate>
<verbsample:SimpleControl id="SimpleControl1"
title="Simple Control" runat="server" />
</ZoneTemplate>
</verbsample:ZoneWithAddedVerb>
</form>
</body>
</html>
<%@ Page Language="VB" %>
<%@ Register TagPrefix="verbsample"
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">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<asp:WebPartManager ID="WebPartManager1" runat="server" />
<verbsample:ZoneWithAddedVerb id="ZoneWithAddedVerb1"
HeaderText="Zone with Added Verb" runat="server">
<ZoneTemplate>
<verbsample:SimpleControl id="SimpleControl1"
title="Simple Control" runat="server" />
</ZoneTemplate>
</verbsample:ZoneWithAddedVerb>
</form>
</body>
</html>
Carregue a página em um navegador e clique no menu de verbos no controle personalizado WebPart . O verbo Copiar Web Part deve estar visível. Clique no verbo e observe que uma cópia do controle é adicionada à zona.
Comentários
Os verbos de Web Parts são elementos interativos da interface do usuário, normalmente representados por botões ou hiperlinks, que aparecem em páginas que usam controles de Web Parts. Os usuários clicam em verbos para executar ações comuns da interface do usuário para controles de Web Parts, como fechar um WebPart controle ou fechar o modo de exibição de edição (um modo de exibição de página especial associado ao EditorZone controle). Todos os verbos padrão fornecidos com o conjunto de controle de Web Parts são associados a uma zona de Web Parts (, , ou ) ou a um controle de Web Parts Part (WebPart, GenericWebPart, EditorPartou CatalogPart).ConnectionsZoneCatalogZoneEditorZoneWebPartZone
Quando os verbos padrão são associados a uma zona, suas ações se aplicam no nível da zona e os verbos geralmente aparecem na área de cabeçalho ou rodapé da zona. A tabela a seguir lista os verbos comuns no nível da zona e descreve suas ações.
Verbo no nível da zona | Ação |
---|---|
Fechar verbo | Usado com zonas que herdam da ToolZone classe . Oculta a interface do usuário de uma zona e normalmente retorna a página para sua exibição de modo de navegação normal. |
Aplicar verbo | Usado com zonas que herdam da EditorZoneBase classe . Aplica as alterações feitas por um usuário. |
Verbo OK | Usado com zonas que herdam da EditorZoneBase classe . Tem o efeito combinado dos verbos apply e close; ele aplica alterações e oculta a interface do usuário da zona. |
Cancelar verbo | Usado com zonas que herdam da ToolZone classe . Cancela as alterações pendentes feitas por um usuário. |
Adicionar verbo | Usado com zonas que herdam da CatalogZoneBase classe . Adiciona um controle que um usuário selecionou de um catálogo de controles a uma zona especificada WebPartZone . |
Configurar verbo | Usado com zonas que herdam da ConnectionsZone classe . Abre uma exibição para permitir que os usuários configurem conexões existentes. |
Desconectar verbo | Usado com zonas que herdam da ConnectionsZone classe . Encerra uma conexão existente entre dois controles. |
Quanto aos verbos padrão associados Part aos controles, suas ações se aplicam ao próprio controle (ou aos controles filho). O controle de parte atua como um contêiner para o verbo e gerencia a renderização do verbo. A maioria dos verbos padrão associados a controles de parte aparece diretamente na barra de título ou em um menu de verbos suspensos dentro da barra de título. Se esses verbos aparecem diretamente no cabeçalho ou em um menu de verbos é determinado pela WebPartVerbRenderMode propriedade ; por padrão, os verbos aparecem em um menu de verbos. A tabela a seguir lista os verbos comuns associados aos vários Part controles e descreve suas ações.
Verbo de controle de parte | Ação |
---|---|
Minimizar verbo | Aparece no menu de verbos de cada controle de servidor contido em uma WebPartZoneBase zona. Reduz o controle a uma representação mínima, ocultando tudo em sua interface do usuário, exceto o verbo de restauração. |
Restaurar verbo | Aparece no menu de verbos de cada controle de servidor contido em uma WebPartZoneBase zona. Retorna um controle minimizado para seu tamanho e exibição normais. |
Fechar verbo | Aparece no menu de verbos de cada controle de servidor contido em uma WebPartZoneBase zona. Fecha um controle e o adiciona ao catálogo de páginas, o que significa que o controle é removido da página, mas, se houver um catálogo projetado corretamente, os usuários poderão reabrir o controle fechado e devolvê-lo à página. |
Conectar verbo | Aparece no menu de verbos de um controle contido em uma WebPartZoneBase zona, se a página estiver no modo de exibição de conexão e se o controle puder formar conexões. Abre uma interface do usuário de conexão para que os usuários possam criar uma conexão entre controles. |
Excluir verbo | Aparece no menu de verbos de um controle contido em uma WebPartZoneBase zona, se o controle foi adicionado à página programaticamente (em vez de ser declarado no formato de persistência). Exclui permanentemente a instância de controle e os dados de personalização associados para que, ao contrário de um controle fechado, a instância excluída nunca possa ser restaurada para a página. |
Editar verbo | Aparecerá no menu de verbos de um controle contido em uma WebPartZoneBase zona, se a página for projetada para permitir a edição de controles e se a página estiver no modo de exibição de edição. Seleciona o controle para edição e abre a interface do usuário de edição. |
Exportar verbo | Aparecerá no menu de verbos de um controle contido em uma WebPartZoneBase zona, se o controle e o aplicativo estiverem habilitados para exportação. Abre uma caixa de diálogo que permite aos usuários exportar um arquivo de descrição que contém o estado serializado do controle. Para obter detalhes, consulte a propriedade ExportMode. |
Verbo de ajuda | Aparecerá no menu de verbos de um controle contido em uma WebPartZoneBase zona, se o controle for projetado para fornecer um arquivo de Ajuda. Inicia uma página que fornece ajuda para o controle. |
Junto com os verbos padrão fornecidos com o conjunto de controle de Web Parts, você também pode criar verbos personalizados. Um cenário comum para criar verbos personalizados é criar verbos associados Part a controles. Quando você cria esses verbos, por padrão, eles aparecem no menu de verbos junto com os verbos padrão. A abordagem básica para criar esses verbos é herdar da WebPartVerb classe para criar um ou mais verbos personalizados. Em seguida, crie um controle que herda da WebPart classe base e adicione os objetos personalizados WebPartVerb a uma WebPartVerbCollection coleção. Essa coleção pode ser adicionada à Verbs coleção do controle , o que fará com que os verbos personalizados apareçam automaticamente no menu de verbos do controle em tempo de execução. Assim como acontece com os verbos padrão, você pode acessar os verbos personalizados programaticamente em um WebPart controle.
Os aplicativos de Web Parts podem usar controles de servidor que não herdam da WebPart classe , como controles personalizados, controles de usuário ou controles de ASP.NET. Esses controles de servidor, se adicionados a uma WebPartZoneBase zona, são encapsulados dinamicamente com um GenericWebPart objeto em tempo de execução, o que permite que eles funcionem como controles de tempo WebPart de execução. Para adicionar verbos personalizados a um controle de servidor que não herda da WebPart classe , o controle de servidor deve implementar a IWebActionable interface e substituir sua Verbs propriedade.
Ao criar um verbo, você pode criar dois tipos de manipuladores de eventos associados que serão executados quando um usuário clicar no verbo: um manipulador de eventos do lado do servidor (código executado no servidor) e um manipulador de eventos do lado do cliente (código executado no navegador do cliente). Além disso, você pode definir estados personalizados para verbos, o que é uma maneira útil de fornecer indicações visuais aos usuários. Por exemplo, você pode criar um estado indicando que um verbo foi selecionado e, em seguida, fornecer alterações apropriadas na interface do usuário para notificar o usuário de que o verbo já está selecionado. Outro comportamento útil é a capacidade de desabilitar verbos; ao fazer isso, você pode impedir que os usuários cliquem em verbos se isso for prejudicial ou ineficaz com base no estado do aplicativo.
A WebPartVerb classe não expõe nenhum método exclusivo; seus métodos expostos são todas substituições de métodos base. No entanto, ele contém várias propriedades para os desenvolvedores estarem cientes. A Checked propriedade indica se um verbo está selecionado no momento. As ClientClickHandler propriedades e ServerClickHandler referem-se aos respectivos manipuladores dentro da classe (se houver) para eventos de clique de cliente e servidor. A Description propriedade contém texto que descreve a finalidade de um verbo em uma Dica de Ferramenta quando os usuários posicionam um ponteiro do mouse sobre o verbo na interface do usuário. A Enabled propriedade indica o status atual de um verbo, que determina se um usuário pode clicar no verbo e executar sua ação. A ID propriedade fornece uma ID exclusiva para o objeto verbo. A ImageUrl propriedade contém uma URL para uma imagem que pode ser usada para representar um verbo na interface do usuário no lugar da renderização padrão (normalmente um botão ou um hiperlink). A Text propriedade contém o texto do rótulo que aparece diretamente no verbo na interface do usuário. A propriedade substituída Visible determina se um verbo é exibido atualmente na interface do usuário. Os verbos geralmente são ocultos ou desabilitados em momentos diferentes em um aplicativo de Web Parts; por exemplo, verbos especiais (como o verbo de edição e o verbo de conexão) são exibidos somente quando os controles, as configurações e os modos de exibição apropriados existem na página para permitir que esses verbos executem uma ação significativa.
Outros membros-chave para trabalhar com verbos incluem o WebPartZoneBase.OnCreateVerbs método , que é um manipulador de eventos que pode ser substituído para manipulação personalizada do processo de criação do verbo e o WebPartZoneBase.CreateVerbs evento .
Construtores
WebPartVerb(String, String) |
Inicializa uma nova instância da classe WebPartVerb e associa um manipulador de eventos de clique do lado do cliente à instância. |
WebPartVerb(String, WebPartEventHandler) |
Inicializa uma nova instância da classe WebPartVerb e associa um manipulador de eventos de clique do lado do servidor à instância. |
WebPartVerb(String, WebPartEventHandler, String) |
Inicializa uma nova instância da classe WebPartVerb e associa um manipulador de eventos de clique do lado do servidor e do cliente à instância. |
Propriedades
Checked |
Obtém ou define um valor que indica que algum estado associado a um verbo personalizado está ativo ou selecionado no momento. |
ClientClickHandler |
Obtém a cadeia de caracteres que contém o nome do método do manipulador de eventos do lado do cliente definido no construtor WebPartVerb. |
Description |
Obtém ou define uma descrição breve do verbo. |
Enabled |
Obtém ou define um valor que indica se um verbo está habilitado. |
ID |
Obtém uma cadeia de caracteres contendo uma ID exclusiva para um verbo. |
ImageUrl |
Obtém ou define uma cadeia de caracteres que contém uma URL para uma imagem que representa um verbo na interface do usuário. |
IsTrackingViewState |
Obtém um valor que indica se o estado de exibição está sendo controlado para um verbo no momento. |
ServerClickHandler |
Obtém uma referência ao método que trata de eventos de clique no lado do servidor para o verbo. |
Text |
Obtém ou define o rótulo de texto para um verbo exibido na interface do usuário. |
ViewState |
Obtém um dicionário de informações de estado que permite salvar e restaurar o estado de exibição de um controle de servidor em várias solicitações para a mesma página. |
Visible |
Obtém ou define um valor que indica se um verbo está visível aos usuários. |
Métodos
Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
GetHashCode() |
Serve como a função de hash padrão. (Herdado de Object) |
GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
LoadViewState(Object) |
Restaura informações de estado de exibição de uma solicitação de página anterior salva pelo método SaveViewState(). |
MemberwiseClone() |
Cria uma cópia superficial do Object atual. (Herdado de Object) |
SaveViewState() |
Salva as alterações no estado de exibição de um objeto WebPartVerb que ocorreram desde que a página foi postada pela última vez no servidor. |
ToString() |
Retorna uma cadeia de caracteres que representa o objeto atual. (Herdado de Object) |
TrackViewState() |
Rastreia as alterações de estado de exibição para um verbo para que as alterações possam ser armazenadas no objeto StateBag do verbo. |
Implantações explícitas de interface
IStateManager.IsTrackingViewState |
Implementa a propriedade IsTrackingViewState chamando a classe WebPartVerb, propriedade própria IsTrackingViewState. |
IStateManager.LoadViewState(Object) |
Implementa o método LoadViewState(Object) da interface IStateManager chamando o a classe WebPartVerb, método próprio LoadViewState(Object). |
IStateManager.SaveViewState() |
Implementa o método SaveViewState() chamando a classe WebPartVerb, método próprio SaveViewState(). |
IStateManager.TrackViewState() |
Implementa o método TrackViewState() chamando a classe WebPartVerb, método próprio TrackViewState(). |