Jon Henning wroteTo understand the sample better, please refer to this blog.
The first question is, are you dynamically loading modules. If not, then the code in that blog, and therefore sample is not really what you are after. In other words, if the control that you are needing is already present for the page's init event, you should just be able to reference it directly. You are using this.parent.parent.parent.parent... why not just reference it by its actual name? Again, if you are dynamically loading the contols, you cannot directly reference. Instead you need to reference a control to handle the request that is present during init.
I also want to note that a new enhancement that I am in the process of making as part of the DNNTabStrip should completely simplify a lot of this.
Hi Jon, thanks I hadnt read that blog post
I'm dynamically loading user controls, not modules .. I did get it to work by using the same method as shown in helloajax blue/red, but with a few extra levels of depth added :)
Each parent ascx handles the RaiseClientAPICallbackEvent by creating its child control and calling childcontrol.RaiseClientAPICallbackEvent .. and since that child control is also a parent it also creates its child and calls child.RaiseClientAPICallbackEvent, until finally the lowest level child control is loaded and it does the actual handling of the call back.
This has worked great, although I still have to use parent.parent.parent.parent which is ugly, I cant reference the first control in the parent chain by name, because the lowest level child doesnt know who its top level parent is
JK.