To add a menu to a web part, override
CreateWebPartMenu to add
MenuItem objects to
the web part's
MenuItems collection. For example, the
following code adds a Save Settings item to the web part
Dim _mnuSave As MenuItem Public Overrides Sub CreateWebPartMenu() _mnuSave = New MenuItem("Save Settings", "mnuSave", _ New EventHandler(AddressOf _mnuSave_Click)) Me.WebPartMenu.MenuItems.Add(_mnuSave) End Sub Private Sub _mnuSave_Click(ByVal sender As Object, ByVal e As System.EventArgs) Try Me.SaveProperties = Not _chkSave.Checked Catch _msg &= "You must be signed in as a contributor to save properties. " End Try End Sub
MenuItem constructor sets the displayed name, ID, and
event handler for the menu item. In this case, the
_mnuSave_Click event handler switches the
SaveProperties setting for the web part on and off.
save their state: they are redrawn from scratch each time the page is displayed. That's why
a statement like
_mnuSave.Checked = Not _mnuSave.Checked
doesn't toggle the checkmark on a menu item. Instead you must use a web part property or a
web control (such as the checkbox) to track the checked status of a menu
CreateChildControls methods are not called in a fixed order, so
it's important to set web control properties in the
OnPreRender event when working with web part menus.
OnPreRender always occurs just before the web part is rendered. This code completes the Save Settings menu example by setting the control properties ...