Ved klik på TreeView indenfor samme gruppe
Hej,Jeg har følgende menustruktur i mit TreeView
Forside
Om os
Test
..Test2
..Test3
Alt fungerer som sådan fint. Når jeg klikker på Test, expander den Test2 og Test3.
Nu klikker jeg så på Test2 og den viser mig fint Test2's indhold.
Jeg klikker derefter på Test3 og den viser mig Test3's indhold.
NU kommer så problemet;
Forsøger jeg herefter at klikke på Test2 eller Test, så bliver den ved med at vise mig Test3's indhold...... Jeg SKAL op i f.eks. Om os og derefter vælge Test eller Test2 for at den vil vise mig det korrekte indhold.......
Jeg har forsøgt mig med "Run to curser" og den kører fint igennem MenuTree_TreeNodeExpanded indtil jeg kommer til at ville vælge Test2 punktet efter jeg har valgt Test3, så kører den ikke igennem den metode længere.......
Hvilken metode bruger den så???
Min kode:
public partial class Admin_Frontpage : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
//Henter menu
GetMenu();
}
this.NodeFound += new EventHandler<Admin_Frontpage.NodeFoundEvent>(Admin_Frontpage_NodeFound);
}
private void GetMenu()
{
//16-06-2008 AS
//Get the top menu
try
{
DALMenu menu = new DALMenu();
if (menu.EditGetTopMenu(MenuTree) == Status.Success)
{
//Henter submenus
for (int i = 0; i < MenuTree.Nodes.Count; i++)
{
TreeNode headnode = MenuTree.Nodes[i];
GetSubNodes(headnode);
foreach (TreeNode node in MenuTree.Nodes[i].ChildNodes)
{
GetSubNodes(node);
}
}
if (lblMenuId.Text == "" || lblMenuId.Text == "0")
{
lblMenuId.Text = "0";
}
}
}
catch
{ }
}
void Admin_Frontpage_NodeFound(object sender, Admin_Frontpage.NodeFoundEvent e)
{
lblMenuId.Text = e.node.Value;
lblMenuName.Text = e.node.Text;
}
protected void MenuTree_TreeNodeExpanded(object sender, TreeNodeEventArgs e)
{
try
{
int key_id = Convert.ToInt32(e.Node.Value);
lblMenuId.Text = key_id.ToString();
lblMenuName.Text = Convert.ToString(e.Node.Text);
if (e.Node.Depth == 0)
{
TreeView t = (TreeView)sender;
for (int i = 0; i < t.Nodes.Count; i++)
{
if (t.Nodes[i] != e.Node)
{
t.Nodes[i].CollapseAll();
}
}
}
}
catch
{
}
}
protected void MenuTree_TreeNodeCollapsed(object sender, TreeNodeEventArgs e)
{
try
{
int key_id = Convert.ToInt32(e.Node.Value);
lblMenuId.Text = key_id.ToString();
lblMenuName.Text = Convert.ToString(e.Node.Text);
}
catch
{
}
}
private static void GetSubNodes(TreeNode node)
{
DALMenu submenu = new DALMenu();
submenu.EditGetSubMenu(node);
}
public void FindAndSelect(TreeView TV, string SearchText)
{
TV.CollapseAll();
foreach (TreeNode node in TV.Nodes)
{
FindNode(node, SearchText);
}
}
public class NodeFoundEvent : EventArgs
{
TreeNode _node;
public TreeNode node
{
get { return _node; }
set { _node = value; }
}
}
public event EventHandler<NodeFoundEvent> NodeFound;
public void FindNode(TreeNode node, string SearchText)
{
if (node.Text == SearchText)
{
node.Select();
ExpandUpwards(node);
NodeFoundEvent evt = new NodeFoundEvent();
evt.node = node;
NodeFound(this, evt);
}
else
foreach (TreeNode sub in node.ChildNodes)
{
FindNode(sub, SearchText);
}
}
public void ExpandUpwards(TreeNode node)
{
node.Expand();
if (node.Parent != null)
ExpandUpwards(node.Parent);
}
}
mvh
simsen :-)