Este artigo foi traduzido por máquina. Para visualizar o arquivo em inglês, marque a caixa de seleção Inglês. Você também pode exibir o texto Em inglês em uma janela pop-up, movendo o ponteiro do mouse sobre o texto.
Tradução
Inglês

Interface IWebActionable

 

Permite WebPart controles ou outros controles de servidor para conter conjuntos de verbos.

Namespace:   System.Web.UI.WebControls.WebParts
Assembly:  System.Web (em System.Web.dll)

public interface IWebActionable

NomeDescrição
System_CAPS_pubpropertyVerbs

Obtém uma referência a uma coleção personalizada WebPartVerb objetos.

Um verbo em WebPart controles é uma ação que um usuário pode executar na interface do usuário (IU). Normalmente, um verbo é representado na interface do usuário por um controle que pode ser clicado, como um botão, um link ou um item de menu. O conjunto de controles Web Parts fornece verbos padrão que estão disponíveis por padrão para WebPart controles e outros controles de servidor (como personalizada, ASP.NET e o usuário controla) que pode agir como WebPart controla quando colocada em WebPartZoneBase zonas. Verbos padrão incluem fechar, minimizam, restaurar, excluam, editam e exportam.

Você também pode criar verbos personalizados para uso com WebPart e controles de servidor. O IWebActionable interface, com seu Verbs propriedade, oferece uma maneira para integrar verbos personalizados em seus controles. O WebPart classe implementa o IWebActionable da interface e implementa sua única propriedade. Adicionar verbos personalizados a um controle que herda de WebPart classe, você deve substituir o WebPart.Verbs propriedade, adicionar verbos personalizados a uma coleção e retorna a coleção. Coleção referenciada pelo WebPart.Verbs propriedade contém apenas os verbos personalizados; verbos padrão não estão incluídos nessa coleção. O padrão retornar o valor do WebPart.Verbs propriedade em um WebPart controle é null, porque por padrão existem sem verbos personalizados na coleção.

Adicionar verbos personalizados para controles de servidor que não são WebPart controles requer uma etapa extra. Nesses casos, os controles também devem implementar o IWebActionable da interface e implementar o Verbs propriedade.

Depois de adicionar verbos personalizados para o Verbs coleção, o controle de Web Parts definido automaticamente manipula as etapas necessárias para criar e processar os verbos personalizados.

O exemplo de código a seguir demonstra uma implementação simples do IWebActionable interface. A primeira parte do exemplo de código mostra como a interface é implementada em um controle de usuário. O controle de usuário implementa o Verbs propriedade criando dois verbos personalizados e definindo um método é chamado quando um usuário clica em um dos verbos. Para simplificar, o mesmo método é usado para ambos os verbos. O método atualiza o valor de uma propriedade chamada VerbCounterClicks. O código para o Page_Load método acessa o Verbs propriedade do controle para exibir a contagem total de verbos personalizados na coleção. Essa contagem não inclui os verbos de Web Parts padrão.

System_CAPS_security Segurança Observação

Este exemplo tem uma caixa de texto que aceita entrada do usuário, que é uma ameaça potencial de segurança. Por padrão, páginas da Web ASP.NET validam a entrada do usuário não inclui elementos HTML ou script. Para obter mais informações, consulte Script Exploits Overview.

<%@ control language="C#" classname="AccountUserControl" %>
<%@ implements 
    interface="System.Web.UI.WebControls.WebParts.IWebActionable" %>
<%@ Import Namespace="System.ComponentModel" %>

<script runat="server">

  private WebPartVerbCollection m_Verbs;

  [Personalizable]
  public string UserName
  {
    get
    {
      if (String.IsNullOrEmpty(Textbox1.Text) || 
        Textbox1.Text.Length < 0)
        return String.Empty;
      else
        return Textbox1.Text;
    }

    set
    {
      Textbox1.Text = value;
    }
  }

  [Personalizable]
  public string Phone
  {
    get
    {
      if(String.IsNullOrEmpty(Textbox2.Text) || 
        Textbox2.Text.Length < 0)
        return String.Empty;
      else
        return Textbox2.Text;
    }

    set
    {
      Textbox2.Text = value;
    }
  }

  // The following code handles the verbs.
  [Personalizable]
  public int VerbCounterClicks
  {
    get
    {
      object objVerbCounter = ViewState["VerbCounterClicks"];
      int VerbCounterClicks = 0;
      if (objVerbCounter != null)
        VerbCounterClicks = (int)objVerbCounter;

      return VerbCounterClicks;
    }
    set
    {
      ViewState["VerbCounterClicks"] = value;
    }
  }

  private void IncrementVerbCounterClicks(object sender, 
    WebPartEventArgs e)
  {
    VerbCounterClicks += 1;
    Label4.Text = "Custom Verbs Click Count: " + 
      this.VerbCounterClicks.ToString();
  }

  void Page_Load(object sender, EventArgs e)
  {
    Label3.Text = "Custom Verb Count:  " +
      WebPartManager.GetCurrentWebPartManager(Page).
      WebParts[0].Verbs.Count.ToString();
  }


  // This property implements the IWebActionable interface.
  WebPartVerbCollection IWebActionable.Verbs
  {
    get
    {
      if (m_Verbs == null)
      {
        ArrayList verbsList = new ArrayList();
        WebPartVerb onlyVerb = new WebPartVerb
          ("customVerb1", new WebPartEventHandler(IncrementVerbCounterClicks));
        onlyVerb.Text = "My Verb";
        onlyVerb.Description = "VerbTooltip";
        onlyVerb.Visible = true;
        onlyVerb.Enabled = true;
        verbsList.Add(onlyVerb);
        WebPartVerb otherVerb = new WebPartVerb
          ("customVerb2", new WebPartEventHandler(IncrementVerbCounterClicks));
        otherVerb.Text = "My other Verb";
        otherVerb.Description = "Other VerbTooltip";
        otherVerb.Visible = true;
        otherVerb.Enabled = true;
        verbsList.Add(otherVerb);
        m_Verbs = new WebPartVerbCollection(verbsList);
        return m_Verbs;
      }
      return m_Verbs;
    }
  }

</script>
<div>
<asp:label id="Label1" runat="server" AssociatedControlID="Textbox1">
  Name</asp:label>
<asp:textbox id="Textbox1" runat="server" />
</div>
<div>
<asp:label id="Label2" runat="server" AssociatedControlID="Textbox2">
  Phone</asp:label>
<asp:textbox id="Textbox2" runat="server"></asp:textbox>
</div>
<div>
<asp:button id="Button2" runat="server" text="Save Form Values" />
</div>
<hr />
<br />
<asp:Label ID="Label3" runat="server" Text="" />
<br />
<asp:Label ID="Label4" runat="server" Text="" />

A segunda parte do exemplo de código é uma página. aspx que hospeda o controle de usuário. Porque o controle é referenciado em um WebPartZone controle em tempo de execução ASP.NET envolve o controle de usuário em um GenericWebPart controlar e tratá-la como um WebPart controle. Depois de carregar a página em um navegador, observe que o rótulo na parte inferior do controle exibe quantos verbos personalizados estão na coleção referenciada pelo Verbs propriedade. Observe também que, se você clicar no menu de verbos no controle e clique em qualquer um dos verbos, outro rótulo aparece mostrando o número total de vezes que os verbos personalizados foram clicados.

<%@ page language="c#" %>
<%@ register tagprefix="uc1" 
    tagname="AccountUserControl" 
    src="usercontrolverbcs.ascx"%>
<!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>
      Personalizable User Control with IWebPart Properties
    </title>
  </head>
  <body>
    <form id="form1" runat="server">
      <asp:webpartmanager id="WebPartManager1" runat="server" />
      <asp:webpartzone 
        id="zone1" 
        runat="server" 
        headertext="Main" 
        CloseVerb-Enabled="false">
        <zonetemplate>
          <uc1:AccountUserControl 
            runat="server" 
            id="accountwebpart" 
            title="Account Form" />
        </zonetemplate>
      </asp:webpartzone> 
    </form>
  </body>
</html>

.NET Framework
Disponível desde 2.0
Retornar ao início
Mostrar: