TreeView SelectedNodeChanged Triggers Parent's TreeNodePopulate?

  • Thread starter Thread starter dmeglio
  • Start date Start date
D

dmeglio

I have a treeview control. The "root" elements and the 2nd level
elements are set to PopulateOnDemand. All is fine, my TreeNodePopulate
triggers and works. When you click one of those nodes, I load ALL the
data under it. Meaning children, grandchildren, great grandchildren,
etc. Hence, those 3rd level and below nodes are
PopulateOnDemand=false. At the 3rd level, my nodes are set to
SelectAction = SelectExpand. When I click on one of them, my
SelectedNodeChanged event does fire, but AFTER the TreeNodePopulate
fires for the 2nd level node. My question is, why is it loading data
for a node I didn't even click (the parent of the node I clicked), and
why is it loading it given that the data is already loaded?

Is this a bug? Is there a work around? Thank you in advance!
 
Sorry I didn't post this at first, but the following code reproduces
it:
In aspx:
<asp:TreeView
id="TreeView1"
runat="server"
ExpandDepth="0"
ShowLines="true"
PopulateNodesFromClient="true"
OnTreeNodePopulate="TreeView1_TreeNodePopulate">
</asp:TreeView>
In codebehind:
protected void Page_Load(object sender, EventArgs e)
{
TreeNode node = new TreeNode();
node.Text = "test1";
node.PopulateOnDemand=true;
TreeView1.Nodes.Add(node);
}

protected void TreeView1_TreeNodePopulate(object sender,
TreeNodeEventArgs e)
{
TreeNode node = new TreeNode();
node.SelectAction = TreeNodeSelectAction.SelectExpand;
node.Text = "test2";
e.Node.ChildNodes.Add(node);
}
 
Back
Top