<ext:Panel ID="SingleResultGroupHeader" runat="server" Layout="ColumnLayout">
<TopBar>
<ext:Toolbar ID="Toolbar_SingleResultGroupHeader" runat="server">
<Items>
<ext:Button ID="btnCategoryMenu" runat="server" Text="REPORT ALL">
<Menu>
<ext:Menu ID="CategoryMenu" runat="server" ShowSeparator="false">
<Items>
<ext:ComponentMenuItem ID="ComponentMenuItem_CategoryMenu" runat="server" Shift="false">
<Component>
<ext:Container ID="Container_CategoryMenu" runat="server" Width="600" Height="200" Layout="HBox">
</ext:Container>
</Component>
</ext:ComponentMenuItem>
</Items>
</ext:Menu>
</Menu>
</ext:Button>
</ext:Toolbar>
</TopBar>
</ext:Panel>
private void PrepareMenu(Ext.Net.Container ContainerName, DataTable dt)
{
StringCollection groupes = GetGroupCollections(dt);
foreach (string group in groupes)
{
Ext.Net.MenuPanel grouppanel = new Ext.Net.MenuPanel();
grouppanel.MinHeight = Unit.Pixel(200);
DataView view = new DataView(dt);
view.RowFilter = string.Format("[Group] = '{0}'", group);
CreateRoot(grouppanel, group, dt);
ContainerName.Items.Add(grouppanel);
}
}
private void CreateRoot(Ext.Net.MenuPanel grouppanel, string group, DataTable dt)
{
DataView rootview = new DataView(dt);
rootview.RowFilter = string.Format("[Group] = '{0}' AND [IsRoot] = true", group);
foreach (DataRowView vrow in rootview)
{
Ext.Net.MenuItem item = new Ext.Net.MenuItem();
item.Text = string.Concat(vrow["Item"].ToString(), " ", "(", vrow["Count"].ToString(), ")");
item.DirectEvents.Click.Event += new Ext.Net.ComponentDirectEvent.DirectEventHandler(Click_Event);
grouppanel.Menu.Items.Add(item);
CreateChilds(grouppanel, group, vrow["Item"].ToString(), dt, 1);
}
}
private void CreateChilds(Ext.Net.MenuPanel grouppanel, string groupview, string parent, DataTable Tree, int level)
{
DataView childview = new DataView(Tree);
childview.RowFilter = string.Format("[Group] = '{0}' AND [IsRoot] = false AND [ParentItem] = '{1}'", groupview, parent);
foreach (DataRowView vrow in childview)
{
Ext.Net.MenuItem item = new Ext.Net.MenuItem();
item.Text = string.Concat(DeepSpace(level), vrow["Item"].ToString(), " ", "(", vrow["Count"].ToString(), ")");
grouppanel.Menu.Items.Add(item);
}
}
void Click_Event(object sender, Ext.Net.DirectEventArgs e)
{
//fail on click
Ext.Net.X.Msg.Alert("asdf", " aaaa").Show();
}
do u need the page_load method also?