Problem with TTIWAdvTreeView OnAsyncItemclick

Ups, post was submitted before I have written what I want to say:

I have a problem with the AdvTreeview.
I add several nodes with subnodes. When I select a node by clicking on the nodename, I want the node not to be expanded or collapsed. It should only collaps or expand, when I click on the Nodeimage (the plus or the minus).
How can this be done?


Unfortunately it's currently not possible to avoid the node to be expanded/collapsed when the nodename is clicked.
However, this is a good suggestion and we'll investigate if this functionality can be added in a future version.

Yes, would be great. The background is, that I want to be able to select a node and then update another componente depending on what node is selected. It is a little bit annoing, that the node expands and collapses, when it gets selected. Collaps and expand should only be triggered when clicking on the plus or minus image of the node.

So for the moment I have to either accept that or I have to think about another component to use instead of the treeview.

Just discovered another problem.

I added a childnode to a node in an asyncevent of another component. After that I want the treeview to show the newly added node. I called the invalidate method of the treeview, but that doesn't help. How can I force the treeview to show the newly added node?


Can you please have a look at the AdvTreeView page in the TMS IW Features Demo?
This application demonstrates how to asynchronously add nodes to the IWAdvTreeView and is working as expected.

Bart Holvoet2014-05-22 04:46:58

Ok, I will take a look at it. Thanks you.

So, refresh of the treeview works, but I had a hard time to get that solved.

If you have the hint of an item set with a string with a \ at the end, it does not work.
I have folders and files as items in the list. In the hint property of the folder items I save the path including the trailing pathdelimiter. When I do this, the newly added item does not show up after treeview.invalidate.
When I put the path without the delimiter into the hint, it works.

After I sorted this out, I had another problem. I use the TIWFileUploader to upload files. In the OnAsyncUploadComplete Event I add the newly uploaded file to the treeview.
When I call treeview.invalidate in this event,the newly added Item is not shown.
I have to call treeview.invalidate in the OnAsyncUploadSuccess Event.
So it was not easy to find the right way, but now it works. Just wanted to point you to the problem with the trailingpathdelimiter in the hint and ask for a manual that goes more into the deep.

This issue where adding a hint text that contains the "" character has now been fixed.
The update will be available with the next release of the TMS IntraWeb Component Pack.

Unfortunately there is currently no manual available for the TIWAdvTreeView as the demo application demonstrates the usage of the control.

Thanks for fixing that. Great support here.

I just have another little issue and hope you have a answer for me.

I add nodes and childnodes to the treeview at runtime in an async event. Now that works fine and the new nodes are displayed after they are added. The only thing that does not work is the display of the images of the node. When there is allready a node with an image and I add new nodes with the same image, it works fine, but if there is no node with the image at the moment the page getrs rendered, adding new nodes work, but the image is not displayed until a complete reload of the page is done.
So what could I do to get images displayed, that are not displayed at the full render of a page, when the item with that image is added at runtime in an async event?

Unfortunately it's currently not supported to asynchronously add items with an image that hasn't yet been used in a full render of the page.

It's on our feature-request to investigate if this functionality can be added in a future version of the TIWAdvTreeView.

Ok, than I will try to find a workaround. I will add items with all possible images at the full render of the page and then remove them asynchron and hope that works. Will give it a try.