|
code
newsgroups
|
|||||||||||||||||||||||
|
|||||||||||||||||||||||
Scroll a node into view -- ASPNET 2.0 TreeviewAnybody figure this out? I can't figure out how to get the node's client
side control ID in order to grab aholt of it. I've seen a post that says that the node's ID is: TreeView.ID + (index of the TreeNode in TreeView.Nodes collection). The problem is that, even after a postback, you can't get the index of the treenode in the collection. You'd think that this would work: (after SelectedNodeChanged postback) TreeView.Nodes.IndexOf(TreeView.SelectedNode) --or-- (when you have the ValuePath) TreeView.Nodes.IndexOf(TreeView.FindNode(ValuePath)) Both of which return -1 for the node index. So what's the solution? Placing the solution here for future reference:
The TreeView creates an object in Javascript on the client side that's called [treeview name]_Data i.e., if the treeview is named tvNavigation, the object's name would be tvNavigation_Data This object has a property called selectedNodeID. This property has a ... property called value that contains the id of the currently selected node. So var name = tvNavigation_Data.selectedNodeID.value; var selectedNode = Document.all?Document.all[name]:Document.getElementById(name); if(selectedNode){ selectedNode.scrollIntoView(true); } will scroll the currently selected node into view. Show quoteHide quote "William Sullivan" wrote: > Anybody figure this out? I can't figure out how to get the node's client > side control ID in order to grab aholt of it. I've seen a post that says > that the node's ID is: TreeView.ID + (index of the TreeNode in > TreeView.Nodes collection). The problem is that, even after a postback, you > can't get the index of the treenode in the collection. You'd think that this > would work: > (after SelectedNodeChanged postback) > TreeView.Nodes.IndexOf(TreeView.SelectedNode) > --or-- > (when you have the ValuePath) > TreeView.Nodes.IndexOf(TreeView.FindNode(ValuePath)) > > Both of which return -1 for the node index. So what's the solution? > The TreeView creates an object in Javascript on the client side that's called
[treeview name]_Data i.e., if the treeview is named tvNavigation, the object's name would be tvNavigation_Data This object has a property called selectedNodeID. This property has a ... property called value that contains the id of the currently selected node. So var name = tvNavigation_Data.selectedNodeID.value; var selectedNode = Document.all?Document.all[name]:Document.getElementById(name); if(selectedNode){ selectedNode.scrollIntoView(true); } will scroll the currently selected node into view. Show quoteHide quote "William Sullivan" wrote: > Anybody figure this out? I can't figure out how to get the node's client > side control ID in order to grab aholt of it. I've seen a post that says > that the node's ID is: TreeView.ID + (index of the TreeNode in > TreeView.Nodes collection). The problem is that, even after a postback, you > can't get the index of the treenode in the collection. You'd think that this > would work: > (after SelectedNodeChanged postback) > TreeView.Nodes.IndexOf(TreeView.SelectedNode) > --or-- > (when you have the ValuePath) > TreeView.Nodes.IndexOf(TreeView.FindNode(ValuePath)) > > Both of which return -1 for the node index. So what's the solution? >
Surprise with Textbox1.Text
DataSourceControl and declarative SelectParameters FileSystemWatcher does not seem to be working Get cached value returned from Select() Determining which control has the focus on my web page Calendar control question SmartNavigation/MaintainScrollPositionOnPostback & Datagrids LinkButton field and FindControl How to make button which has a underline character for shortcut key? Treeview.TreeNodeSrc = "xml formated string" does url-request |
|||||||||||||||||||||||