On 11/8/07, Colin Alston <karnaugh(a)karnaugh.za.net> wrote:
>
> On 08/11/2007 20:50 Harald Blåtand wrote:
> > <snip>
>
> You should very much not be using Frames. The fragments should be
> rendered into a div or some such area on the main page, not a frame.
OK, thanks for the advice. Have redesigned to <div>s (LiveFragments) in one
LivePage -
- A "vertical" div, populated at page render time. Gets id="athena:1".
- A "horizontal" div (gets id="athena:3"), for showing results from
clicking a row in "athena:1".
I can see nice flattened HTML in the log, by renderSynchronously(), but I
have trouble finding the "athena:3" node, to display it. Here's what I've
tried:
- self.nodeById() in the callback triggered by the JS func that called
Python. The HTML looks fine. The callback didn't seem to know about
self.node, so I passed it as an arg. - however, in the 1st func,
self.node.id = "athena:1" (from the click in the first div).
- Nevow.Athena.NodeByAttribute(root, ...) which calls
Divmod.Runtime.theRuntime.nodeByAttribute(selt, root, ...), which appears to
do a tree search.
Now the question is: How do I find "root"??
Presumably, it's one level above "athena:1", "athena:2", etc. I tried with
"Divmod._location+Nevow.Athena.livepageID+'/jsmodule'", since that was the
value of jsModuleRoot of class LivePage, but no luck.
Sound like a newbie? Good guess :-) Hoping for some more patience........