Rank: Newbie Groups: Member
Joined: 10/26/2007 Posts: 3
|
Hi, i have 2 treeviews. 1 of them, a simle typical asp treeview, and the other, a eo.web.treeview. Both, are being populated on demand. Although i had defined 2 similar functions for both, when i expand nodes from asp treeview... it works fine, then, i expand eo.web.treeview, and it works fine too, but if i want to expand any other node from asp treeview, it doesn't work. When i debug, the first time i try to expand eo.web.treeview, pass for the correct sub, and the asp treeview too, but next time i try to expand another eoweb.treeview node... it pass through asp treeview function.
These are the declarations :
Private Sub FillEOTREEVIEWNodes(ByVal Origen As Object, ByVal e As EO.Web.NavigationItemEventArgs) Handles EOTreeView.ItemPopulate
Private Sub LlenarNodo(ByVal Origen As Object, ByVal e As TreeNodeEventArgs) Handles ASPTreeView.TreeNodePopulate
So what could be happening?
Thanks
|
Rank: Administration Groups: Administration
Joined: 5/27/2007 Posts: 24,194
|
Hi,
That is normal. :) Generally you should not putting two populating on demand TreeView in the same page --- but if you do, they do work, but in a very mysterious way.
The reason that you are seeing expanding EO.Web.TreeView would trigger ASP.NET TreeView's populate on demand handler is because both TreeViews "replays" all populate on demands actions when the page post back. Consider the following sequence:
1. ASP.NET TreeView loads with a single root node "root"; 2. You expand ASP.NET TreeView. This triggers its server side handler and creates new child tree node "child"; 3. Now you post back the page (for example, by clicking a button "Button1"). The page is reloaded based on .aspx file. At this point the TreeView only have one single root node "root" as in step 1; 4. ASP.NET TreeView remembers that you have populated once. So it calls populate handler again to re-create child node "child".
Step 4 is a "replay" of step 2. What makes it looks confusing is, while step 2 is directly triggered by user expanding a TreeNode, step 4 is triggered by user clicking a button that doesn't appear to have anything to do with the TreeView at all.
Both ASP.NET TreeView and our TreeView replays when posting back. So when you expand our TreeView, ASP.NET TreeView would try to "replay", and vice versa. This of course gets very confusing very quickly.
Thanks
|