With that many nodes, even if you can find a performant way to display them, it is likely not going to be very usable by your users. Imagine trying to scroll through 35,000 nodes just to find the node you're interested in! Same goes for paging. Is an user really going to page 3500 pages (assuming a page size of 10) to find their target? Probably not, and if they do, they probably won't be too happy. :)
Instead, with large data sets like this, I find it's usually best to provide some type of "Filter" UI. Something that enables your user to "shape" the available data in to a more manageable collection.
I'm not sure what ability you have to provide filtering (i.e. what fields you might filter on), but I think that's your best bet. Options for the UI are:
- Something like RadGrid for ASP.NET AJAX that can provide a built-in filtering UI that enables users to quickly find the values they're interested in.
- Using the RadTreeView's client-side API and support for loading nodes on-demand, you could create a textbox that would filter the nodes in the tree as the user types. You would simply handle the TextBox's onkeyup event and then fire a request to a web service to grab the nodes that meet the filter criteria, and replace your TreeView's node collection with the result. That will make it much easier for your users to find their target node.
Clearly there are other approaches, too, but hopefully this gives you some ideas.
Short Answer: For large datasets, I'd use a combination of real-time filtering and web services to present a more manageable result set to my users. For initial load, I'd only load the first (let's say) 200 nodes to keep performance high.
Hope this helps!
-Todd