<%@ 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