|
 |
|
 |
| About the menu |
 |
The menu above demonstrates how you can dynamically build a
part of the menu. One part of the menu is defined in the aspx file and
the Date item as well as submenus below it are built programmatically.
The current month item is programmatically selected while building the menu. |
| About the menu |
 |
The menu above uses WindowsXPGray built-in skin and is totally created programmatically.
|
<%@ Page language="c#" Inherits="ASPNETExpert.WebControls.Demo.Menu.Programming.Programmatic._default" CodeFile="default.aspx.cs" %>
<%@ Register TagPrefix="ecd" Namespace="ASPNETExpert.WebControls.DemoControls" Assembly="ASPNETExpert.WebControls.DemoControls" %>
<%@ Register TagPrefix="ecd" TagName="Footer" Src="../../Controls/Footer.ascx"%>
<%@ Register TagPrefix="ecd" TagName="Header" Src="../../Controls/Header.ascx"%>
<%@ Register TagPrefix="ec" Namespace="ASPNETExpert.WebControls" Assembly="ASPNETExpert.WebControls" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>ASP.NET Menu : ExpertMenu Demo : Programmatically Built Menu</title>
<link href="../../style.css" type="text/css" rel="stylesheet">
</HEAD>
<body xmlns:ec="urn:http://aspnetexpert.com/ExpertControls.xsd">
<form id="Form1" method="post" runat="server">
<ecd:Header runat=server ID="Header1"></ecd:Header>
<ec:ExpertMenu runat="server" id="PartiallyBuiltMenu" Skin="Office03Olive" PostBackOnClick="True">
<TopGroup>
<Items>
<ec:MenuSeparator />
<ec:MenuItem Text="File" PostBackOnClick="False">
<SubMenu>
<Items>
<ec:MenuItem Text="New..." DualIconLook-InitLook-LeftIcon-ImageUrl="../../images/Office2003/icon_new.gif" />
<ec:MenuItem Text="Open..." DualIconLook-InitLook-LeftIcon-ImageUrl="../../images/Office2003/icon_open.gif" />
<ec:MenuSeparator />
<ec:MenuItem Text="Send To">
<SubMenu>
<Items>
<ec:MenuItem Text="Mail Recipient" DualIconLook-InitLook-LeftIcon-ImageUrl="../../images/Office2003/icon_mailRecipient.gif" />
<ec:MenuItem Text="Mail Recipient (for Review)...">
<DualIconLook InitLook-LeftIcon-ImageUrl="../../images/Office2003/icon_mailRecipientReview.gif" />
</ec:MenuItem>
<ec:MenuItem Text="Mail Recipient (As Attachment)...">
<DualIconLook InitLook-LeftIcon-ImageUrl="../../images/Office2003/icon_mailRecipientAttachmnt.gif" />
</ec:MenuItem>
<ec:MenuItem Text="Routing Recipient..." DualIconLook-InitLook-LeftIcon-ImageUrl="../../images/Office2003/icon_routingRecipient.gif" />
<ec:MenuItem Text="Exchange Folder..." DualIconLook-InitLook-LeftIcon-ImageUrl="../../images/Office2003/icon_exchangeFolder.gif" />
<ec:MenuSeparator />
<ec:MenuItem Text="Microsoft Office PowerPoint...">
<DualIconLook InitLook-LeftIcon-ImageUrl="../../images/Office2003/icon_powerPoint.gif" />
</ec:MenuItem>
</Items>
</SubMenu>
</ec:MenuItem>
<ec:MenuSeparator />
<ec:MenuItem Text="Save" DualIconLook-InitLook-LeftIcon-ImageUrl="../../images/Office2003/icon_save.gif" />
<ec:MenuItem Text="Save As" />
<ec:MenuItem Text="Save as Web Page" DualIconLook-InitLook-LeftIcon-ImageUrl="../../images/Office2003/icon_saveAsWebPage.gif" />
<ec:MenuItem Text="File Search" DualIconLook-InitLook-LeftIcon-ImageUrl="../../images/Office2003/icon_fileSearch.gif" />
<ec:MenuSeparator />
<ec:MenuItem Text="Page Setup..." />
<ec:MenuItem Text="Print Preview" DualIconLook-InitLook-LeftIcon-ImageUrl="../../images/Office2003/icon_printPreview.gif" />
<ec:MenuItem Text="Print..." DualIconLook-InitLook-LeftIcon-ImageUrl="../../images/Office2003/icon_print.gif" />
<ec:MenuSeparator />
<ec:MenuItem Text="Exit" />
</Items>
</SubMenu>
</ec:MenuItem>
<ec:MenuItem Text="View" PostBackOnClick="False">
<SubMenu>
<Items>
<ec:MenuItem Text="Normal" DualIconLook-InitLook-LeftIcon-ImageUrl="../../images/Office2003/icon_normal.gif" />
<ec:MenuItem Text="Web Layout" DualIconLook-InitLook-LeftIcon-ImageUrl="../../images/Office2003/icon_webLayout.gif" />
<ec:MenuItem Text="Reading Layout" DualIconLook-InitLook-LeftIcon-ImageUrl="../../images/Office2003/icon_readingLayout.gif" />
<ec:MenuItem Text="Outline" DualIconLook-InitLook-LeftIcon-ImageUrl="../../images/Office2003/icon_outline.gif" />
<ec:MenuSeparator />
<ec:MenuItem Text="Ruler" IconLook-Base="CheckItem" />
<ec:MenuSeparator />
<ec:MenuItem Text="Document Map" DualIconLook-InitLook-LeftIcon-ImageUrl="../../images/Office2003/icon_documentMap.gif" />
<ec:MenuItem Text="Thumbnails" DualIconLook-InitLook-LeftIcon-ImageUrl="../../images/Office2003/icon_thumbnails.gif" />
<ec:MenuItem Text="Header and Footer" DualIconLook-InitLook-LeftIcon-ImageUrl="../../images/Office2003/icon_headerFooter.gif" />
</Items>
</SubMenu>
</ec:MenuItem>
</Items>
</TopGroup>
</ec:ExpertMenu>
<ec:ExpertPath runat="server" id="ExpertPath" ExpertMenuId="PartiallyBuiltMenu" EnableViewState="false">
<ItemLook>
<InitLook Cursor="Pointer" ForeColor="#82825F" Padding-All="2px" Padding-Left="5px" Padding-Right="5px" Font-Name="Verdana" Font-Size="10px" Font-Bold="True" />
<HoveredLook Cursor="Pointer" Font-Name="Verdana" Font-Size="10px" Font-Bold="True" Font-Decoration="Underline" />
</ItemLook>
<SeparatorTextLook Text="|" Padding-Left="5px" Padding-Right="5px" Font-Name="Verdana" Font-Size="10px" Font-Bold="True" />
</ec:ExpertPath>
<ecd:DescriptionView runat="server" IconUrl="../../images/kv.gif" Caption="About the menu" ID="Descriptionview1">
<ecd:Description id="Description1" runat="server">
The menu above demonstrates how you can dynamically build a
part of the menu. One part of the menu is defined in the <b>aspx</b> file and
the <b>Date</b> item as well as submenus below it are built programmatically.
The current month item is programmatically selected while building the menu.</ecd:Description>
</ecd:DescriptionView>
<br>
<ec:ExpertMenu runat="server" id="TotallyBuiltMenu" Skin="WindowsXPGray" />
<ecd:DescriptionView runat="server" IconUrl="../../images/kv.gif" Caption="About the menu" ID="Descriptionview2">
<ecd:Description id="Description2" runat="server">
The menu above uses <b>WindowsXPGray</b> built-in skin and is totally created programmatically.
</ecd:Description>
</ecd:DescriptionView>
<ec:CodeViewTab id="CodeViewTab1" runat="server" ImagesBaseUrl="../../images/tab/">
<ec:TabItem runat="server" Text="aspx" ID="Tabitem1">
<pre class="aspcode">
<ecd:SyntaxHighlight runat="server" ContentType="ASPX" OutputFile="default.aspx" ID="Syntaxhighlight1"/>
</pre>
</ec:TabItem>
<ec:TabItem runat="server" Text="C#" ID="Tabitem2">
<pre class="aspcode">
<ecd:SyntaxHighlight runat="server" ContentType="C#" OutputFile="default.aspx.cs" ID="Syntaxhighlight2"/>
</pre>
</ec:TabItem>
<ec:TabItem runat="server" Text="VB" ID="Tabitem3">
<pre class="aspcode">
<ecd:SyntaxHighlight runat="server" ContentType="VB" OutputFile="default_vb.aspx.vb" ID="Syntaxhighlight3"/>
</pre>
</ec:TabItem>
</ec:CodeViewTab>
<ecd:Footer runat=server ID="Footer1"></ecd:Footer>
</form>
</body>
</HTML>
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using ASPNETExpert.WebControls;
namespace ASPNETExpert.WebControls.Demo.Menu.Programming.Programmatic
{
///
/// Summary description for _default.
///
public partial class _default : System.Web.UI.Page
{
static string[] MonthName = new string[] {"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"};
protected void Page_Load(object sender, System.EventArgs e)
{
if(!IsPostBack)
{
BuildPartialMenu();
BuildTotalMenu();
}
}
private void BuildPartialMenu()
{
MenuItem dateItem = new MenuItem();
dateItem.Text = "Date";
dateItem.PostBackOnClick = AutoBoolean.False;
dateItem.SubMenu = new MenuGroup();
PartiallyBuiltMenu.TopGroup.Items.Add(dateItem);
for(int year = 2000; year <= DateTime.Now.Year; year++)
{
MenuItem yearItem = new MenuItem();
yearItem.Text = year.ToString();
yearItem.SubMenu = new MenuGroup();
dateItem.SubMenu.Items.Add(yearItem);
for(int month = 0; month < 12; month++)
{
MenuItem monthItem = new MenuItem();
monthItem.Text = MonthName[month];
yearItem.SubMenu.Items.Add(monthItem);
if(year == DateTime.Now.Year && month + 1 == DateTime.Now.Month)
PartiallyBuiltMenu.SelectedItem = monthItem;
}
}
}
private void BuildTotalMenu()
{
MenuItem topItem = CreateParentItem("File", null, null);
TotallyBuiltMenu.TopGroup.Items.Add(topItem);
topItem.SubMenu.Items.Add(CreateItem("New", "icon_new.gif", "icon_new_over.gif"));
MenuItem menuItem = CreateParentItem("Open", "icon_open.gif", "icon_open_over.gif");
topItem.SubMenu.Items.Add(menuItem);
menuItem.SubMenu.Items.Add(CreateItem("Project", "icon_project.gif", "icon_project_over.gif"));
menuItem.SubMenu.Items.Add(CreateItem("Project From Web", "icon_projectFromWeb.gif", "icon_projectFromWeb_over.gif"));
menuItem.SubMenu.Items.Add(CreateItem("File", "icon_file.gif", "icon_file_over.gif"));
menuItem.SubMenu.Items.Add(CreateItem("File From Web", "icon_fileFromWeb.gif", "icon_fileFromWeb_over.gif"));
topItem.SubMenu.Items.Add(CreateItem("Close", null, null));
topItem.SubMenu.Items.Add(new MenuSeparator());
topItem.SubMenu.Items.Add(CreateItem("Add New Item", "icon_addNewItem.gif", "icon_addNewItem_over.gif"));
topItem.SubMenu.Items.Add(CreateItem("Add Existing Item", "icon_addExistingItem.gif", "icon_addExistingItem_over.gif"));
topItem = CreateParentItem("Edit", null, null);
TotallyBuiltMenu.TopGroup.Items.Add(topItem);
topItem.SubMenu.Items.Add(CreateItem("Cut", "icon_cut.gif", "icon_cut_over.gif"));
topItem.SubMenu.Items.Add(CreateItem("Copy", "icon_copy.gif", "icon_copy_over.gif"));
topItem.SubMenu.Items.Add(CreateItem("Paste", "icon_paste.gif", "icon_paste_over.gif"));
topItem.SubMenu.Items.Add(CreateItem("Delete", "icon_delete.gif", "icon_delete_over.gif"));
}
private MenuItem CreateParentItem(string text, string leftIcon, string leftIconOver)
{
MenuItem result = CreateItem(text, leftIcon, leftIconOver);
result.SubMenu = new MenuGroup();
return result;
}
private MenuItem CreateItem(string text, string leftIcon, string leftIconOver)
{
MenuItem result = new MenuItem(text);
if(leftIcon != null)
result.DualIconLook.InitLook.LeftIcon.ImageUrl = "..\\..\\images\\WinXP\\" + leftIcon;
if(leftIconOver != null)
result.DualIconLook.HoveredLook.LeftIcon.ImageUrl = "..\\..\\images\\WinXP\\" + leftIconOver;
return result;
}
#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: This call is required by the ASP.NET Web Form Designer.
//
InitializeComponent();
base.OnInit(e);
}
///
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
///
private void InitializeComponent()
{
}
#endregion
}
}
Namespace ASPNETExpert.WebControls.DemoVB.Programming.Programmatic
Partial Class default_vb
Inherits System.Web.UI.Page
#Region " Web Form Designer Generated Code "
Private Sub InitializeComponent()
End Sub
Private MonthName() As String = New String() {"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"}
Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
'CODEGEN: This method call is required by the Web Form Designer
'Do not modify it using the code editor.
InitializeComponent()
End Sub
#End Region
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
If Not IsPostBack Then
BuildPartialMenu()
BuildTotalMenu()
End If
End Sub
Private Sub BuildPartialMenu()
Dim dateItem As MenuItem = New MenuItem
dateItem.Text = "Date"
dateItem.PostBackOnClick = AutoBoolean.False
dateItem.SubMenu = New MenuGroup
PartiallyBuiltMenu.TopGroup.Items.Add(dateItem)
Dim year As Integer
For year = 2000 To DateTime.Now.Year
Dim yearItem As MenuItem = New MenuItem
yearItem.Text = year.ToString()
yearItem.SubMenu = New MenuGroup
dateItem.SubMenu.Items.Add(yearItem)
Dim month As Integer
For month = 0 To 11
Dim monthItem As MenuItem = New MenuItem
monthItem.Text = MonthName(month)
monthItem.Id = year.ToString() + "," + month.ToString()
yearItem.SubMenu.Items.Add(monthItem)
If year = DateTime.Now.Year And month + 1 = DateTime.Now.Month Then
PartiallyBuiltMenu.SelectedItem = monthItem
End If
Next month
Next year
End Sub
Private Sub BuildTotalMenu()
Dim topItem As menuItem = CreateParentItem("File", Nothing, Nothing)
TotallyBuiltMenu.TopGroup.Items.Add(topItem)
topItem.SubMenu.Items.Add(CreateItem("New", "icon_new.gif", "icon_new_over.gif"))
Dim menuItem As menuItem = CreateParentItem("Open", "icon_open.gif", "icon_open_over.gif")
topItem.SubMenu.Items.Add(menuItem)
menuItem.SubMenu.Items.Add(CreateItem("Project", "icon_project.gif", "icon_project_over.gif"))
menuItem.SubMenu.Items.Add(CreateItem("Project From Web", "icon_projectFromWeb.gif", "icon_projectFromWeb_over.gif"))
menuItem.SubMenu.Items.Add(CreateItem("File", "icon_file.gif", "icon_file_over.gif"))
menuItem.SubMenu.Items.Add(CreateItem("File From Web", "icon_fileFromWeb.gif", "icon_fileFromWeb_over.gif"))
topItem.SubMenu.Items.Add(CreateItem("Close", Nothing, Nothing))
topItem.SubMenu.Items.Add(New MenuSeparator)
topItem.SubMenu.Items.Add(CreateItem("Add New Item", "icon_addNewItem.gif", "icon_addNewItem_over.gif"))
topItem.SubMenu.Items.Add(CreateItem("Add Existing Item", "icon_addExistingItem.gif", "icon_addExistingItem_over.gif"))
topItem = CreateParentItem("Edit", Nothing, Nothing)
TotallyBuiltMenu.TopGroup.Items.Add(topItem)
topItem.SubMenu.Items.Add(CreateItem("Cut", "icon_cut.gif", "icon_cut_over.gif"))
topItem.SubMenu.Items.Add(CreateItem("Copy", "icon_copy.gif", "icon_copy_over.gif"))
topItem.SubMenu.Items.Add(CreateItem("Paste", "icon_paste.gif", "icon_paste_over.gif"))
topItem.SubMenu.Items.Add(CreateItem("Delete", "icon_delete.gif", "icon_delete_over.gif"))
End Sub
Private Function CreateParentItem(ByVal text As String, ByVal leftIcon As String, ByVal leftIconOver As String) As MenuItem
Dim result As MenuItem = CreateItem(text, leftIcon, leftIconOver)
result.SubMenu = New MenuGroup
Return result
End Function
Private Function CreateItem(ByVal text As String, ByVal leftIcon As String, ByVal leftIconOver As String) As MenuItem
Dim result As MenuItem = New MenuItem(text)
If Not leftIcon Is Nothing Then
result.DualIconLook.InitLook.LeftIcon.ImageUrl = "..\..\images\WinXP\" + leftIcon
End If
If Not leftIconOver Is Nothing Then
result.DualIconLook.HoveredLook.LeftIcon.ImageUrl = "..\..\images\WinXP\" + leftIconOver
End If
Return result
End Function
End Class
End Namespace
|
 |
|
|
|
|