<%@ Page language="c#" Inherits="ASPNETExpert.WebControls.Demo.Programming.TemplateLooks._default" CodeFile="default.aspx.cs" %>
<%@ Register TagPrefix="ec" Namespace="ASPNETExpert.WebControls" Assembly="ASPNETExpert.WebControls" %>
<%@ Register TagPrefix="ecd" TagName="Header" Src="../../Controls/Header.ascx"%>
<%@ Register TagPrefix="ecd" TagName="Footer" Src="../../Controls/Footer.ascx"%>
<%@ Register TagPrefix="ecd" Namespace="ASPNETExpert.WebControls.DemoControls" Assembly="ASPNETExpert.WebControls.DemoControls" %>
<%@ Register TagPrefix="ecd" TagName="ColorPicker" Src="../../Controls/ColorPicker.ascx" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>ASP.NET Menu : ExpertMenu Demo : Template Items</title>
<link href="../../style.css" type="text/css" rel="stylesheet">
<link href="menuStyle.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" Skin="Office03Blue" id="ExpertMenu1">
<TopGroup>
<Items>
<ec:MenuSeparator />
<ec:MenuItem Text="Format">
<SubMenu>
<Items>
<ec:MenuItem Text="Font..." DualIconLook-InitLook-LeftIcon-ImageUrl="../../images/Office2003/icon_font.gif" />
<ec:MenuItem Text="Paragraph..." DualIconLook-InitLook-LeftIcon-ImageUrl="../../images/Office2003/icon_paragraph.gif" />
<ec:MenuItem Text="Bullets and Numbering..." DualIconLook-InitLook-LeftIcon-ImageUrl="../../images/Office2003/icon_bullets.gif" />
<ec:MenuItem Text="Borders and Shading..." />
<ec:MenuSeparator />
<ec:MenuItem Text="Background">
<SubMenu>
<Items>
<ec:MenuSeparator Value="Gold">
<TemplateLook Padding-Left="25px" Id="ColorPicker">
<LookTemplate>
<ecd:ColorPicker runat="server" SelectedColor='<%#DataBinder.Eval(Container.DataObject, "Value")%>' ID="Colorpicker1" />
</LookTemplate>
</TemplateLook>
</ec:MenuSeparator>
</Items>
</SubMenu>
</ec:MenuItem>
<ec:MenuItem Text="Auto Format..." DualIconLook-InitLook-LeftIcon-ImageUrl="../../images/Office2003/icon_autoFormat.gif" />
<ec:MenuItem Text="Styles and Formatting..." DualIconLook-InitLook-LeftIcon-ImageUrl="../../images/Office2003/icon_stylesAndFormatting.gif" />
<ec:MenuItem Text="Reveal Formatting..." DualIconLook-InitLook-LeftIcon-ImageUrl="../../images/Office2003/icon_revealFormatting.gif" />
</Items>
</SubMenu>
</ec:MenuItem>
<ec:MenuItem Text="Custom">
<SubMenu>
<Items>
<ec:MenuItem Text="Calendar">
<SubMenu>
<Items>
<ec:MenuSeparator>
<TemplateLook Padding-Left="25px" Id="Calendar">
<LookTemplate>
<asp:calendar id="Calendar1" runat="server" SelectedDate="<%#DateTime.Today%>" DayNameFormat="FirstTwoLetters" CssClass="Calendar" selecteddaystyle-backcolor="silver" style="border-color:white;" width="140" PrevMonthText="<<" NextMonthText=">>">
<TitleStyle CssClass="CalendarTitle" BackColor="#A3C2F5"></TitleStyle>
<SelectedDayStyle BackColor="#FBE694" ForeColor="#000000" BorderWidth="1px" BorderColor="#BB5503"
Font-Bold="true"></SelectedDayStyle>
<DayHeaderStyle Font-Bold="True"></DayHeaderStyle>
<OtherMonthDayStyle ForeColor="#999999"></OtherMonthDayStyle>
</asp:calendar>
</LookTemplate>
</TemplateLook>
</ec:MenuSeparator>
</Items>
</SubMenu>
</ec:MenuItem>
<ec:MenuSeparator />
<ec:MenuItem Text="Input Data">
<SubMenu>
<Items>
<ec:MenuSeparator Value="Init value">
<TemplateLook Padding-Left="25px" Id="InputData">
<LookTemplate>
<table cellpadding="0" cellspacing="2" border="0" width="100%">
<tr>
<td class="ListBoxTitle">Make your choice</td>
</tr>
<tr>
<td class="ListBoxItem">
<asp:CheckBox Runat="server" Text="Option 1" ID="Checkbox1"></asp:CheckBox></td>
</tr>
<tr>
<td class="ListBoxItem">
<asp:CheckBox Runat="server" Text="Option 2" ID="Checkbox2"></asp:CheckBox></td>
</tr>
<tr>
<td class="ListBoxItem">
<asp:CheckBox Runat="server" Text="Option 3" ID="Checkbox3"></asp:CheckBox></td>
</tr>
<tr>
<td class="ListBoxTitle">Make your choice</td>
</tr>
<tr>
<td class="ListBoxItem">
<asp:RadioButton Runat="server" Text="Radio 1" GroupName="Radio1" Checked="True" ID="Radiobutton1"></asp:RadioButton>
</td>
</tr>
<tr>
<td class="ListBoxItem">
<asp:RadioButton Runat="server" Text="Radio 2" GroupName="Radio1" ID="Radiobutton2"></asp:RadioButton>
</td>
</tr>
<tr>
<td class="ListBoxItem">
<asp:RadioButton Runat="server" Text="Radio 3" GroupName="Radio1" ID="Radiobutton3"></asp:RadioButton>
</td>
</tr>
<tr>
<td class="ListBoxTitle">Select from list</td>
</tr>
<tr>
<td class="ListBoxItem">
<asp:ListBox Runat="server" ID="ListBox1" Rows="1" Style="width:100%;" CssClass="ListBoxItem"
SelectionMode="Single">
<asp:ListItem>Select 1</asp:ListItem>
<asp:ListItem>Select 2</asp:ListItem>
<asp:ListItem>Select 3</asp:ListItem>
</asp:ListBox>
</td>
</tr>
<tr>
<td class="ListBoxTitle">Enter text</td>
</tr>
<tr>
<td class="ListBoxItem">
<asp:TextBox Runat="server" ID="TextBox1" Text="" Style="width:100%;"></asp:TextBox></td>
</tr>
<tr>
<td align="center">
<asp:Button Runat="server" Text="Submit" CssClass="ListBoxTitle" ID="Button1"></asp:Button></td>
</tr>
</table>
</LookTemplate>
</TemplateLook>
</ec:MenuSeparator>
</Items>
</SubMenu>
</ec:MenuItem>
<ec:MenuSeparator />
<ec:MenuSeparator Id="ShowInputData">
<TemplateLook Padding-Left="25px" Id="ShowInputDataTemplate">
<LookTemplate>
<table cellpadding="0" cellspacing="2" border="0" width="100%">
<tr>
<td class="ListBoxTitle" align="center">You have selected</td>
</tr>
<tr>
<td class="ListBoxItem">
<asp:Repeater Runat="server" ID="SelectedRepeater">
<HeaderTemplate>
<ul>
</HeaderTemplate>
<ItemTemplate>
<li>
<%#Container.DataItem%>
</li>
</ItemTemplate>
<FooterTemplate>
</ul>
</FooterTemplate>
</asp:Repeater>
</td>
</tr>
</table>
</LookTemplate>
</TemplateLook>
</ec:MenuSeparator>
</Items>
</SubMenu>
</ec:MenuItem>
</Items>
</TopGroup>
</ec:ExpertMenu>
<br>
<ecd:DescriptionView runat="server" IconUrl="../../images/kv.gif" ID="Descriptionview1">
<ecd:Description id="Description1" runat="server">This demo shows using <b>TemplateLooks</b>.
<b>TemplateLook</b> is a look that can contain arbitrary content within its template.</ecd:Description>
<ecd:Description id="Description2" runat="server">You can put any HTML, Web controls, User controls
inside a <b>TemplateLook</b>'s template.</ecd:Description>
<ecd:Description id="Description3" runat="server">Only a <b>MenuSeparator</b> can refer to a <b>TemplateLook</b>
in an <b>ExpertMenu</b>.</ecd:Description>
<ecd:Description id="Description4" runat="server">You can use databind expressions inside a template.</ecd:Description>
<ecd:Description id="Description5" runat="server">Use API to handle a number of server-side
events that are raised by TemplateLooks and command controls inside them, and access controls inside templates.</ecd:Description>
</ecd:DescriptionView>
<ec:CodeViewTab id="CodeViewTab1" runat="server" Class="Tab" TabClass="TabContent" ItemClass="TabItem"
ItemOverClass="TabItemOver" ItemSelectedClass="TabItemSelected" ImagesBaseUrl="../../images/tab/"
SeparatorImage="separator.gif">
<ec:TabItem runat="server" Text="aspx">
<pre class="aspcode">
<ecd:SyntaxHighlight runat="server" ContentType="ASPX" OutputFile="default.aspx" ID="Syntaxhighlight1"/>
</pre>
</ec:TabItem>
<ec:TabItem runat="server" Text="C#">
<pre class="aspcode">
<ecd:SyntaxHighlight runat="server" ContentType="C#" OutputFile="default.aspx.cs" ID="Syntaxhighlight2"/>
</pre>
</ec:TabItem>
<ec:TabItem runat="server" Text="VB">
<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.Programming.TemplateLooks
{
///
/// Summary description for _default.
///
public partial class _default : System.Web.UI.Page
{
protected void Page_Load(object sender, System.EventArgs e)
{
}
#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()
{
this.ExpertMenu1.TemplateLookCommand += new TemplateLookCommandEventHandler(ExpertMenu1_TemplateLookCommand);
this.ExpertMenu1.TemplateLookDataBound += new TemplateLookEventHandler(ExpertMenu1_TemplateLookDataBound);
}
#endregion
private void ExpertMenu1_TemplateLookDataBound(object sender, TemplateLookEventArgs e)
{
if(e.TemplateLookContainer.TemplateLook.Id == "InputData")
{
(e.TemplateLookContainer.FindControl("TextBox1") as TextBox).Text = (e.TemplateLookContainer.DataObject as MenuSeparator).Value;
(e.TemplateLookContainer.FindControl("ListBox1") as ListBox).SelectedIndex = 1;
}
}
private void ExpertMenu1_TemplateLookCommand(object sender, TemplateLookCommandEventArgs e)
{
if(e.TemplateLookContainer.TemplateLook.Id == "InputData")
{
ArrayList selectionList = new ArrayList();
if((e.TemplateLookContainer.FindControl("Checkbox1") as CheckBox).Checked)
selectionList.Add("<b>" + (e.TemplateLookContainer.FindControl("Checkbox1") as CheckBox).Text + "</b>");
if((e.TemplateLookContainer.FindControl("Checkbox2") as CheckBox).Checked)
selectionList.Add("<b>" + (e.TemplateLookContainer.FindControl("Checkbox2") as CheckBox).Text + "</b>");
if((e.TemplateLookContainer.FindControl("Checkbox3") as CheckBox).Checked)
selectionList.Add("<b>" + (e.TemplateLookContainer.FindControl("Checkbox3") as CheckBox).Text + "</b>");
if((e.TemplateLookContainer.FindControl("Radiobutton1") as RadioButton).Checked)
selectionList.Add("<b>" + (e.TemplateLookContainer.FindControl("Radiobutton1") as RadioButton).Text + "</b>");
if((e.TemplateLookContainer.FindControl("Radiobutton2") as RadioButton).Checked)
selectionList.Add("<b>" + (e.TemplateLookContainer.FindControl("Radiobutton2") as RadioButton).Text + "</b>");
if((e.TemplateLookContainer.FindControl("Radiobutton3") as RadioButton).Checked)
selectionList.Add("<b>" + (e.TemplateLookContainer.FindControl("Radiobutton3") as RadioButton).Text + "</b>");
selectionList.Add("List item:<b>" + (e.TemplateLookContainer.FindControl("ListBox1") as ListBox).SelectedValue + "</b>");
if((e.TemplateLookContainer.FindControl("TextBox1") as TextBox).Text != string.Empty)
selectionList.Add("Input text:<b>" + (e.TemplateLookContainer.FindControl("TextBox1") as TextBox).Text + "</b>");
((ExpertMenu1.TopGroup.FindById("ShowInputData") as MenuSeparator).TemplateLook.Container.FindControl("SelectedRepeater") as Repeater).DataSource = selectionList;
((ExpertMenu1.TopGroup.FindById("ShowInputData") as MenuSeparator).TemplateLook.Container.FindControl("SelectedRepeater") as Repeater).DataBind();
}
}
}
}
Namespace ASPNETExpert.WebControls.DemoVB.Advanced.TemplateItems
Partial Class default_vb
Inherits System.Web.UI.Page
#Region " Web Form Designer Generated Code "
'This call is required by the Web Form Designer.
Private Sub InitializeComponent()
End Sub
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
'Put user code to initialize the page here
End Sub
Private Sub ExpertMenu1_TemplateLookDataBound(ByVal sender As System.Object, ByVal e As TemplateLookEventArgs) Handles ExpertMenu1.TemplateLookDataBound
If e.TemplateLookContainer.TemplateLook.Id = "InputData" Then
CType(e.TemplateLookContainer.FindControl("TextBox1"), TextBox).Text = CType(e.TemplateLookContainer.DataObject, MenuSeparator).Value
CType(e.TemplateLookContainer.FindControl("ListBox1"), ListBox).SelectedIndex = 1
End If
End Sub
Private Sub ExpertMenu1_TemplateLookCommand(ByVal sender As System.Object, ByVal e As TemplateLookCommandEventArgs) Handles ExpertMenu1.TemplateLookCommand
If e.TemplateLookContainer.TemplateLook.Id = "InputData" Then
Dim selectionList As ArrayList = New ArrayList
If CType(e.TemplateLookContainer.FindControl("Checkbox1"), CheckBox).Checked Then
selectionList.Add("<b>" + CType(e.TemplateLookContainer.FindControl("Checkbox1"), CheckBox).Text + "</b>")
End If
If CType(e.TemplateLookContainer.FindControl("Checkbox2"), CheckBox).Checked Then
selectionList.Add("<b>" + CType(e.TemplateLookContainer.FindControl("Checkbox2"), CheckBox).Text + "</b>")
End If
If CType(e.TemplateLookContainer.FindControl("Checkbox3"), CheckBox).Checked Then
selectionList.Add("<b>" + CType(e.TemplateLookContainer.FindControl("Checkbox3"), CheckBox).Text + "</b>")
End If
If CType(e.TemplateLookContainer.FindControl("Radiobutton1"), RadioButton).Checked Then
selectionList.Add("<b>" + CType(e.TemplateLookContainer.FindControl("Radiobutton1"), RadioButton).Text + "</b>")
End If
If CType(e.TemplateLookContainer.FindControl("Radiobutton2"), RadioButton).Checked Then
selectionList.Add("<b>" + CType(e.TemplateLookContainer.FindControl("Radiobutton2"), RadioButton).Text + "</b>")
End If
If CType(e.TemplateLookContainer.FindControl("Radiobutton3"), RadioButton).Checked Then
selectionList.Add("<b>" + CType(e.TemplateLookContainer.FindControl("Radiobutton3"), RadioButton).Text + "</b>")
End If
selectionList.Add("List item:<b>" + CType(e.TemplateLookContainer.FindControl("ListBox1"), ListBox).SelectedValue + "</b>")
If CType(e.TemplateLookContainer.FindControl("TextBox1"), TextBox).Text <> String.Empty Then
selectionList.Add("Input text:<b>" + CType(e.TemplateLookContainer.FindControl("TextBox1"), TextBox).Text + "</b>")
End If
CType(CType(ExpertMenu1.TopGroup.FindById("ShowInputData"), MenuSeparator).TemplateLook.Container.FindControl("SelectedRepeater"), Repeater).DataSource = selectionList
CType(CType(ExpertMenu1.TopGroup.FindById("ShowInputData"), MenuSeparator).TemplateLook.Container.FindControl("SelectedRepeater"), Repeater).DataBind()
End If
End Sub
End Class
End Namespace