May 22, 2013, 5:36 PM
[CLOSED] TreePanel refresh problem
Hello,
Please investigate the code below. I need to refresh dynamically created TreePanel items of the MainMenuPanel (defined in markup) in certain circumstances. When I hit "Refresh", tree panels are refreshed but the MenuGroup 1 initially shows no child nodes. Switching to Menu Group 2 and then Menu Group 1, child nodes become visible.
What is wrong with the code or the way I follow?
Thanks.
Please investigate the code below. I need to refresh dynamically created TreePanel items of the MainMenuPanel (defined in markup) in certain circumstances. When I hit "Refresh", tree panels are refreshed but the MenuGroup 1 initially shows no child nodes. Switching to Menu Group 2 and then Menu Group 1, child nodes become visible.
What is wrong with the code or the way I follow?
Thanks.
<%@ Page Language="C#" %>
<%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
<script runat="server">
protected void Page_Load(object sender, EventArgs e)
{
if (!X.IsAjaxRequest)
{
BuildMenu();
}
}
protected void RefreshMenu(object sender, DirectEventArgs e)
{
BuildMenu();
}
protected void BuildMenu()
{
Ext.Net.TreePanel MenuGroup1 = new Ext.Net.TreePanel();
MenuGroup1.ID = "Group1";
MenuGroup1.RootVisible = false;
MenuGroup1.SetTitle("Menu Group 1");
MenuGroup1.UseArrows = true;
MenuGroup1.Icon = Icon.Cog;
Ext.Net.TreeView Tview = new Ext.Net.TreeView();
Tview.ToggleOnDblClick = false;
MenuGroup1.View.Add(Tview);
Ext.Net.Node MenuRoot1 = new Ext.Net.Node();
MenuRoot1.NodeID = "Group1Root";
MenuRoot1.Text = "Group1Root";
MenuRoot1.Leaf = false;
MenuGroup1.Root.Add(MenuRoot1);
Ext.Net.Node ManagementNode = new Ext.Net.Node();
ManagementNode.Leaf = true;
ManagementNode.Text = "Setting 01";
ManagementNode.NodeID = "Setting01";
MenuRoot1.Children.Add(ManagementNode);
MenuGroup1.AddTo(MainMenuPanel);
Ext.Net.TreePanel MenuGroup2 = new Ext.Net.TreePanel();
MenuGroup2.ID = "Group2";
MenuGroup2.RootVisible = false;
MenuGroup2.SetTitle("Menu Group 2");
MenuGroup2.UseArrows = true;
MenuGroup2.Icon = Icon.Cog;
Ext.Net.TreeView Tview2 = new Ext.Net.TreeView();
Tview2.ToggleOnDblClick = false;
MenuGroup2.View.Add(Tview2);
Ext.Net.Node MenuRoot2 = new Ext.Net.Node();
MenuRoot2.NodeID = "Group2Root";
MenuRoot2.Text = "Group2Root";
MenuRoot2.Leaf = false;
MenuGroup2.Root.Add(MenuRoot2);
Ext.Net.Node ManagementNode2 = new Ext.Net.Node();
ManagementNode2.Leaf = true;
ManagementNode2.Text = "Setting 02";
ManagementNode2.NodeID = "Setting02";
MenuRoot2.Children.Add(ManagementNode2);
MenuGroup2.AddTo(MainMenuPanel);
}
</script>
<!DOCTYPE html>
<html>
<head id="Head1" runat="server">
<title>Ext.NET Examples</title>
</head>
<body>
<form id="form1" runat="server">
<ext:ResourceManager ID="ResourceManager1" runat="server"/>
<div>
<ext:Viewport ID="MyViewport" runat="server" Layout="BorderLayout">
<Items>
<ext:Panel runat="server" ID="MainMenuPanel" Region="West" Layout="AccordionLayout" Collapsible="true" Split="true" Title="Menu" Width="200" MinWidth="200" MaxWidth="400" >
<TopBar>
<ext:Toolbar runat="server" ID="MainMenuTopBar">
<Items>
<ext:ToolbarFill ID="ToolbarFill1" runat="server"></ext:ToolbarFill>
<ext:Button ID="BtnRefresMenu" runat="server" Icon="ArrowRefresh">
<DirectEvents>
<Click OnEvent="RefreshMenu">
</Click>
</DirectEvents>
<ToolTips>
<ext:ToolTip runat="server" Title="Refresh" Html="Refresh..."></ext:ToolTip>
</ToolTips>
</ext:Button>
</Items>
</ext:Toolbar>
</TopBar>
<LayoutConfig>
<ext:AccordionLayoutConfig OriginalHeader="true" Animate="true" ActiveOnTop="true" />
</LayoutConfig>
</ext:Panel>
</Items>
</ext:Viewport>
</div>
</form>
</body>
</html>
</form>
</body>
</html>
Last edited by Daniil; Sep 16, 2013 at 3:51 PM.
Reason: [CLOSED]