<%@ 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" %>
<%@ Page language="c#" Inherits="ASPNETExpert.WebControls.Demo.Menu.Programming.CheckUncheck._default" CodeFile="default.aspx.cs" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<title>ASP.NET Menu : ExpertMenu Demo : Check / Uncheck Items</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="ExpertMenu1" Skin="Office03Blue" PostBackOnClick="True" EnableViewState="true">
<TopGroup Look-Base="TopGroup">
<Items>
<ec:MenuSeparator />
<ec:MenuItem Text="Access" PostBackOnClick="False">
<SubMenu Look-Expand-Effect="GradientWipeDown" Look-Collapse-Effect="GradientWipeUp">
<Items>
<ec:MenuItem Value="Single" Text="Unrestricted Access" IconLook-Base="CheckItem" />
<ec:MenuSeparator />
<ec:MenuItem Value="Single" Text="Deny Access" Checked="False" IconLook-Base="CheckItem" />
<ec:MenuSeparator />
<ec:MenuItem Value="MultipleParent" Text="Grant Access to" PostBackOnClick="False" Checked="False">
<SubMenu Look-Expand-Effect="GradientWipeRight" Look-Collapse-Effect="GradientWipeLeft">
<Items>
<ec:MenuItem Value="Multiple" Text="Manager Group" Checked="False" IconLook-Base="CheckItem" />
<ec:MenuItem Value="Multiple" Text="Accountant Group" Checked="False" IconLook-Base="CheckItem" />
<ec:MenuItem Value="Multiple" Text="Support Group" Checked="False" IconLook-Base="CheckItem" />
</Items>
</SubMenu>
</ec:MenuItem>
</Items>
</SubMenu>
</ec:MenuItem>
</Items>
</TopGroup>
</ec:ExpertMenu>
<br>
<ecd:DescriptionView runat="server" IconUrl="../../images/kv.gif" ID="Descriptionview1">
<ecd:Description runat="server">This example demonstrates how you can check / uncheck menu items
by specifying an item's <b>Checked</b> property.</ecd:Description>
<ecd:Description runat="server">An item should have a reference to <b>
IconLook</b> (of
type <b>ImageTextLook</b>) in order to response on setting <b>Checked</b> property.</ecd:Description>
</ecd:DescriptionView>
<ec:CodeViewTab id="CodeViewTab1" runat="server" ImagesBaseUrl="../../images/tab/">
<ec:TabItem runat="server" Text="aspx">
<pre class="aspcode">
<ecd:SyntaxHighlight runat="server" ContentType="ASPX" OutputFile="default.aspx" />
</pre>
</ec:TabItem>
<ec:TabItem runat="server" Text="C#">
<pre class="aspcode">
<ecd:SyntaxHighlight runat="server" ContentType="C#" OutputFile="default.aspx.cs" />
</pre>
</ec:TabItem>
<ec:TabItem runat="server" Text="VB">
<pre class="aspcode">
<ecd:SyntaxHighlight runat="server" ContentType="VB" OutputFile="default_vb.aspx.vb" />
</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.CheckUncheck
{
///
/// Summary description for _default.
///
public partial class _default : System.Web.UI.Page
{
protected ASPNETExpert.WebControls.DemoControls.Description Description1;
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.MenuItemClick += new ASPNETExpert.WebControls.MenuEventHandler(this.ExpertMenu1_MenuItemClick);
}
#endregion
private void ExpertMenu1_MenuItemClick(object sender, ASPNETExpert.WebControls.MenuEventArgs eventArgs)
{
if(eventArgs.Item.Value == "Single")
{
if(!eventArgs.Item.Checked)
{
Uncheck((ExpertMenu1.TopGroup.Items[1] as MenuItem).SubMenu);
Uncheck((ExpertMenu1.TopGroup.FindByValue("MultipleParent") as MenuItem).SubMenu);
eventArgs.Item.Checked = true;
}
}
else
if(eventArgs.Item.Value == "Multiple")
{
Uncheck((ExpertMenu1.TopGroup.Items[1] as MenuItem).SubMenu);
eventArgs.Item.Checked = !eventArgs.Item.Checked;
}
}
private void Uncheck(MenuGroup menuGroup)
{
foreach(BaseMenu baseMenu in menuGroup.Items)
{
MenuItem item = baseMenu as MenuItem;
if(item != null)
item.Checked = false;
}
}
}
}
Imports ASPNETExpert.WebControls
Namespace ASPNETExpert.WebControls.DemoVB.Programming.CheckUncheck
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_MenuItemSelected(ByVal sender As System.Object, ByVal eventArgs As ASPNETExpert.WebControls.MenuEventArgs) Handles ExpertMenu1.MenuItemClick
If eventArgs.Item.Value = "Single" Then
If Not eventArgs.Item.Checked Then
Uncheck(CType(ExpertMenu1.TopGroup.Items(1), MenuItem).SubMenu)
Uncheck(CType(ExpertMenu1.TopGroup.FindByValue("MultipleParent"), MenuItem).SubMenu)
eventArgs.Item.Checked = True
End If
Else
If (eventArgs.Item.Value = "Multiple") Then
Uncheck(CType(ExpertMenu1.TopGroup.Items(1), MenuItem).SubMenu)
eventArgs.Item.Checked = Not eventArgs.Item.Checked
End If
End If
End Sub
Private Sub Uncheck(ByVal menuGroup As MenuGroup)
Dim baseMenu As baseMenu
For Each baseMenu In menuGroup.Items
If TypeOf baseMenu Is MenuItem Then
CType(baseMenu, MenuItem).Checked = False
End If
Next baseMenu
End Sub
End Class
End Namespace