menupanel automatically removes menuitem on click

  1. #1

    menupanel automatically removes menuitem on click

    Hi all,

    Create menupanel and menuitem dynamically. It's working in version 1.x but in version 2.0 menupanel automatically removes menuitem on click.

    Code below

    <%@ Page Language="C#" %>
    <%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
    
    <script runat="server">
        
        protected void Page_Load(object sender, EventArgs e)
        {
            var mp = new Ext.Net.MenuPanel
            {
                ID = "mp3",
                Title = "menupanel",
                SaveSelection = false                
            };
            Ext.Net.MenuItem mi1 = new Ext.Net.MenuItem
            {
                ID = "test1",
                Text = "menuitem 1"
            };        
            mi1.Listeners.Click.Handler = "addTab(#{TabPanel1},'test1', 'https://examples1.ext.net', this);";
            mp.Menu.Items.Add(mi1);  
            Ext.Net.MenuItem mi2 = new Ext.Net.MenuItem
            {
                ID = "test2",
                Text = "menuitem 2"
            };        
            mi2.Listeners.Click.Handler = "addTab(#{TabPanel1},'test2', 'https://examples2.ext.net', this);";
            mp.Menu.Items.Add(mi2);
            this.WestPanel.Items.Add(mp);         
        }
         
    </script> 
    <!DOCTYPE html>
    
    <html>
    <head runat="server">
        <title>Adding Tabs On The Fly - Ext.NET Examples</title>
        <link rel="stylesheet" type="text/css" href="./resources/css/examples.css" />
        <ext:XScript runat="server">
            <script type="text/javascript">
                var addTab = function (tabPanel, id, url, menuItem) {
                    var tab = tabPanel.getComponent(id);
                    if (!tab) {
                        tab = tabPanel.add({ 
                            id       : id, 
                            title    : url, 
                            closable : true,
                            menuItem : menuItem,
                            loader   : {
                                url      : url,
                                renderer : "frame",
                                loadMask : {
                                    showMask : true,
                                    msg      : "Loading " + url + "..."
                                }
                            }
                        });
                    }            
                    tabPanel.setActiveTab(tab);
                }
            </script>
        </ext:XScript>
    </head>
    <body>
        <form runat="server">
            <ext:ResourceManager runat="server" />
    
            <ext:Viewport ID="Viewport1" runat="server" Layout="border">
                <Items>
                   <ext:Panel ID="NorthPanel" 
                        runat="server"
                        Region="North"
                        Split="false"
                        Height="64"                
    				    Border="False"				    
    				    Layout="VBoxLayout">
                        <Defaults>
                            <ext:Parameter Name="margins" Value="0 0 0 0" Mode="Value" />
                        </Defaults>
                        <LayoutConfig>
                            <ext:VBoxLayoutConfig Padding="0" Align="Stretch" />
                        </LayoutConfig>
                        <Items>                                  
                            <ext:Panel ID="AppTitle" runat="server" Flex="1" border="false" cls="topheader" Height="32" 
                                Html="<div class='api-title'>APP Title</div>" />
                        </Items>
                    </ext:Panel>        
                    <ext:Panel ID="WestPanel" 
                        runat="server"
    				    Title="Module Explorer"
                        Region="West"
                        Layout="Accordion"				    
                        Width="225" 
                        MinWidth="225" 
                        MaxWidth="325" 
                        Split="true" 
                        Collapsible="true"
    				    CollapseMode="Mini"
    				    hideCollapseTool="false"			
    				    margins="5 0 14 5"
    				    cmargins="5 5 14 5">
    				    <Items>
                                    <ext:MenuPanel 
                                        ID="MenuPanel1" 
                                        Title="Adding tab"
                                        runat="server" 
                                        Width="200">
                                        <Menu runat="server">
                                            <Items>
                                                <ext:MenuItem ID="MenuItem1" runat="server" Text="Ext.NET">
                                                    <Listeners>
                                                        <Click Handler="addTab(#{TabPanel1}, 'idClt', 'http://www.ext.net', this);" />
                                                    </Listeners>
                                                </ext:MenuItem>
                                
                                                <ext:MenuSeparator />
                                
                                                <ext:MenuItem ID="MenuItem2" runat="server" Text="Ext.NET forums">
                                                    <Listeners>
                                                        <Click Handler="addTab(#{TabPanel1}, 'idGgl', 'http://forums.ext.net', this);" />
                                                    </Listeners>
                                                </ext:MenuItem>
                                
                                                <ext:MenuSeparator />
                                
                                                <ext:MenuItem ID="MenuItem3" runat="server" Text="Sencha">
                                                    <Listeners>
                                                        <Click Handler="addTab(#{TabPanel1}, 'idExt', 'http://www.sencha.com', this);" />
                                                    </Listeners>
                                                </ext:MenuItem>
                                            </Items>
                                        </Menu>
                                    </ext:MenuPanel>                                		
                        </Items>
                    </ext:Panel>
                    <ext:Panel ID="CenterPanel"
                        runat="server"
                        Region="center"                    
                        Split="false"                
    				    Border="false"								
                        Collapsible="false" 
                        Layout="FitLayout"               
                        margins="5 5 14 0">
                        <Items>
                            <ext:TabPanel 
                                ID="TabPanel1"
                                runat="server" 
                                Region="Center"                           
                                margins="0 0 0 0">
                                <Items>
                                    <ext:Panel ID="homePanel" runat="server" Title="Home" Border="false" Padding="20" AutoScroll="true" IconCls="home"  
                                        Html="<h1>menupanel automatically removes after clicked</h1>"                            
                                    />
                                </Items>
                            </ext:TabPanel>                   
                        </Items>
                    </ext:Panel>
                </Items>
            </ext:Viewport>
        </form>
    </body>
    </html>
    Thank you for advice.
  2. #2
    I add IDMode.Ignore or IDMode.Predictable and It's working


    protected void Page_Load(object sender, EventArgs e)
        {
            var mp = new Ext.Net.MenuPanel
            {
                ID = "mp3",
                Title = "menupanel",
                SaveSelection = false               
            };
            Ext.Net.MenuItem mi1 = new Ext.Net.MenuItem
            {
                ID = "test1",
                Text = "menuitem 1",
                IDMode = IDMode.Ignore
            };       
            mi1.Listeners.Click.Handler = "addTab(#{TabPanel1},'test1', 'https://examples1.ext.net', this);";
            mp.Menu.Items.Add(mi1); 
            Ext.Net.MenuItem mi2 = new Ext.Net.MenuItem
            {
                ID = "test2",
                Text = "menuitem 2",
                IDMode = IDMode.Predictable
            };       
            mi2.Listeners.Click.Handler = "addTab(#{TabPanel1},'test2', 'https://examples2.ext.net', this);";
            mp.Menu.Items.Add(mi2);
            this.WestPanel.Items.Add(mp);        
        }
    But I don't know a different between "Ignore" and "Predictable"
  3. #3
    The problem that you create tab with id the same as menuitem id
    It is impossible to have two widgets with same id

    Set another id for new tab, for example, 'test1_tab'
    mi1.Listeners.Click.Handler = "addTab(#{TabPanel1},'test1_tab', 'https://examples1.ext.net', this);";
    But I don't know a different between "Ignore" and "Predictable"
    If Ignore then ID is not rendered for a widget, if Predictable then ID will equal NamingContainerID_WidgetID
  4. #4
    Thank you, Sir. Now It's working.
    Last edited by Aod47; Sep 03, 2012 at 1:59 PM.

Similar Threads

  1. Replies: 0
    Last Post: Mar 12, 2012, 7:26 AM
  2. Changing color or image of MenuItem inside MenuPanel
    By venu.sn2009 in forum 1.x Help
    Replies: 2
    Last Post: Jun 15, 2011, 10:02 AM
  3. [CLOSED] How to highlight menuitem in Menupanel
    By rnachman in forum 1.x Legacy Premium Help
    Replies: 2
    Last Post: Apr 06, 2011, 3:24 PM
  4. [CLOSED] [1.0] Deselect menuItem in MenuPanel
    By x1000 in forum 1.x Legacy Premium Help
    Replies: 1
    Last Post: Mar 03, 2010, 4:45 AM
  5. [CLOSED] [1.0] Problem in AccordionLayout, MenuPanel, MenuItem
    By miguelon in forum 1.x Legacy Premium Help
    Replies: 4
    Last Post: Nov 22, 2009, 2:48 PM

Tags for this Thread

Posting Permissions