WebPartZoneBase.HelpVerb Property

Definition

Gets a reference to a WebPartVerb object used to access Help content for WebPart controls in a zone.

C#
[System.Web.UI.PersistenceMode(System.Web.UI.PersistenceMode.InnerProperty)]
public virtual System.Web.UI.WebControls.WebParts.WebPartVerb HelpVerb { get; }

Property Value

A WebPartVerb that enables users to access Help content on the WebPart controls in a zone.

Attributes

Examples

The following code example demonstrates the use of the HelpVerb property on a WebPartZone control.

For the code example to work, in addition to the following code, you need a custom WebPart control. You can either use your own control, or use the code for the custom TextDisplayWebPart control found in the Example section of the WebPart class overview.

This code example includes a user control to enable you to change display modes on a Web page. For more information about display modes and the source code in this control, see Walkthrough: Changing Display Modes on a Web Parts Page.

ASP.NET (C#)
<%@ 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=" 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>

This code example also includes an HTML page that could contain Help content for the TextDisplayWebPart control. For this example to work, you must save the following code in a file named Textwebparthelp.htm and place it in the same directory of your site as the .aspx page that hosts the TextDisplayWebPart control.

<html>  
<head runat="server">  
    <title>Text Content WebPart Help</title>  
</head>  
<body>  
  <div>  
  <h1>Text Content WebPart Help</h1>  
  To make the WebPart control work...  
  </div>  
</body>  
</html>  

The code example also includes the following partial class that contains the code to handle the events in the .aspx page.

C#
using System;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;

public partial class WebPartZoneBase_verbs : System.Web.UI.Page
{
  protected void Page_Load(Object sender, EventArgs e)
  {
    if (WebPartZone1.WebParts.Count == 0)
      Table1.Visible = false;
    else
      Table1.Visible = true;

    // Enable all verbs on the first page load.
    if (!IsPostBack)
    {
      foreach (ListItem item in CheckBoxList1.Items)
        item.Selected = true;
      CheckBoxList1_SelectedItemIndexChanged(sender, e);
    } 
  }

  protected void CheckBoxList1_SelectedItemIndexChanged(Object sender, EventArgs e)
  {
    foreach (ListItem item in CheckBoxList1.Items)
    {
      WebPartVerb theVerb;
      switch (item.Value)
      {
        case "close":
          theVerb = WebPartZone1.CloseVerb;
          break;
        case "export":
          theVerb = WebPartZone1.ExportVerb;
          break;
        case "delete":
          theVerb = WebPartZone1.DeleteVerb;
          break;
        case "minimize":
          theVerb = WebPartZone1.MinimizeVerb;
          break;
        case "restore":
          theVerb = WebPartZone1.RestoreVerb;
          break;
        default:
          theVerb = null;
          break;
      }

      if (item.Selected)
        theVerb.Enabled = true;
      else
        theVerb.Enabled = false;
    }
  }
}

The other part of the code example is the .aspx page that hosts the TextDisplayWebPart control and demonstrates the use of the HelpVerb property. Notice that near the top of the page, an <@ Register %> declaration is used to reference the compiled TextDisplayWebPart control, which should be placed in a subfolder named Bin.

ASP.NET (C#)
<%@ Page Language="C#" 
  Codefile="webpartzonebase_verbs.cs"
  Inherits="WebPartZoneBase_verbs"  %>
<%@ register TagPrefix="uc1" 
  TagName="DisplayModeMenuCS" 
  Src="DisplayModeMenuCS.ascx" %>
<%@ register tagprefix="aspSample" 
  Namespace="Samples.AspNet.CS.Controls" 
  Assembly="TextDisplayWebPartCS" %>

<!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>WebPartZoneBase Example</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
      <asp:WebPartManager ID="WebPartManager1" Runat="server" />
      <uc1:DisplayModeMenuCS ID="DisplayModeMenu1" runat="server" />
      <asp:WebPartZone ID="WebPartZone1" Runat="server">
        <CloseVerb Text="Close WebPart" />
        <HelpVerb Text="View Help" />
        <ExportVerb Text="Export WebPart Definition" />
        <DeleteVerb Text ="Delete WebPart" />
        <MinimizeVerb Description="Minimize the control" />
        <RestoreVerb Description="Restore the control" />
        <ZoneTemplate>
        </ZoneTemplate>  
      </asp:WebPartZone>
      <asp:CatalogZone ID="CatalogZone1" Runat="server">
        <ZoneTemplate>
          <asp:DeclarativeCatalogPart ID="DeclarativeCatalogPart1" 
            Runat="server">
            <WebPartsTemplate>
              <aspSample:TextDisplayWebPart 
                runat="server"   
                id="textwebpart" 
                title = "Text Content WebPart" 
                width="350px" 
                AllowClose="true"
                ExportMode="All"
                HelpMode="Modal"
                HelpUrl="TextWebPartHelp.htm" />            
            </WebPartsTemplate>
          </asp:DeclarativeCatalogPart> 
          <asp:PageCatalogPart ID="PageCatalogPart1" Runat="server" />
        </ZoneTemplate>
      </asp:CatalogZone>
      <asp:Table ID="Table1" Runat="server">
        <asp:TableRow>
          <asp:TableCell>
            <asp:CheckBoxList ID="CheckBoxList1" Runat="server" 
              AutoPostBack="true" 
              OnSelectedIndexChanged="CheckBoxList1_SelectedItemIndexChanged">
              <asp:ListItem Value="close">Close Verb Enabled</asp:ListItem>
              <asp:ListItem Value="delete">Delete Verb Enabled</asp:ListItem>
              <asp:ListItem Value="export">Export Verb Enabled</asp:ListItem>
              <asp:ListItem Value="minimize">Minimize Verb Enabled</asp:ListItem>
              <asp:ListItem Value="restore">Restore Verb Enabled</asp:ListItem>
            </asp:CheckBoxList>
          </asp:TableCell>
        </asp:TableRow>
      </asp:Table>
    </div>
    </form>
</body>
</html>

Also note that the HelpVerb property is used declaratively on the <asp:WebPartZone> element to set the text for the verb, as shown in the following code example.

ASP.NET (C#)
<asp:WebPartZone ID="WebPartZone1" Runat="server">
  <CloseVerb Text="Close WebPart" />
  <HelpVerb Text="View Help" />
  <ExportVerb Text="Export WebPart Definition" />
  <DeleteVerb Text ="Delete WebPart" />
  <MinimizeVerb Description="Minimize the control" />
  <RestoreVerb Description="Restore the control" />
  <ZoneTemplate>
  </ZoneTemplate>  
</asp:WebPartZone>

Finally, note in the following code example that the HelpUrl property is set on the <aspSample:TextDisplayPart> element to provide the URL to the Help file.

ASP.NET (C#)
<asp:CatalogZone ID="CatalogZone1" Runat="server">
  <ZoneTemplate>
    <asp:DeclarativeCatalogPart ID="DeclarativeCatalogPart1" 
      Runat="server">
      <WebPartsTemplate>
        <aspSample:TextDisplayWebPart 
          runat="server"   
          id="textwebpart" 
          title = "Text Content WebPart" 
          width="350px" 
          AllowClose="true"
          ExportMode="All"
          HelpMode="Modal"
          HelpUrl="TextWebPartHelp.htm" />            
      </WebPartsTemplate>
    </asp:DeclarativeCatalogPart> 
    <asp:PageCatalogPart ID="PageCatalogPart1" Runat="server" />
  </ZoneTemplate>
</asp:CatalogZone>

After you load the page in a browser, click the Catalog Mode menu item in the Display Mode drop-down list control to switch the page into catalog display mode. Add the TextDisplayWebPart control to the page, close the catalog, and return the page to normal browse mode. If you click the verbs drop-down menu in the title bar of the TextDisplayWebPart control, you can access the help verb to open the Help page.

Remarks

The HelpVerb property can be accessed either declaratively or programmatically. You can access it declaratively within a zone by using the <asp:HelpVerb> element to set the text, the description, whether the verb is enabled, and other attributes. It is not necessary to declare a help verb for a zone, however, because it is enabled by default. The only step that is necessary to enable a help verb to appear on the verbs menu of WebPart controls in a zone at run time is to assign a value to the HelpUrl property for individual WebPart controls.

Applies to

Продукт Версії
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1

See also