Dynamical generated slots
Hello, im looking for a possibility to generate Slots for a livepage dynamical. my code for the livepage looks like this, it works fine, but i can not update any of the slots! def render_mytable(self, ctx, data): mydetail=[] for i in range(1,15): mydetail.append([T.td [T.slot('test'+str(i), "default")]]) if i % 3 is 0: mydetail.append([T.tr[T.td['-test-']]],) return ctx.tag[mydetail] template: <table nevow:render="mytable" name="mytabletest"/> it should be possible that the user can change the text in the row n and colume x. this do not work: client.set('test1', text) i think the problem is, that the slots are not hardcoded. is there a other possibility. thank you very much!
On Thu, 24 Nov 2005 16:30:58 +0000, Johann Siegele <j.siegele@gmx.at> wrote:
Hello, im looking for a possibility to generate Slots for a livepage dynamical. my code for the livepage looks like this, it works fine, but i can not update any of the slots!
What does "update" mean? The only operation on slots I know of is "fill" - ie, ctx/proto.fillSlots(slotName, slotValue).
def render_mytable(self, ctx, data): mydetail=[] for i in range(1,15): mydetail.append([T.td [T.slot('test'+str(i), "default")]]) if i % 3 is 0:
You should not use "is" for integer comparison. It will be wrong sometimes in confusing ways. Use "==".
mydetail.append([T.tr[T.td['-test-']]],) return ctx.tag[mydetail]
This code doesn't ever seem to fill any slots. I don't think I understand the question you're asking.
template: <table nevow:render="mytable" name="mytabletest"/>
it should be possible that the user can change the text in the row n and colume x.
this do not work: client.set('test1', text)
Ah. Slots are *server* side. You cannot fill them using LivePage after the page has been rendered.
i think the problem is, that the slots are not hardcoded.
is there a other possibility.
Instead, you probably want to give the nodes IDs and address them in that manner. Also, I would recommend you take a look at Athena, which makes this kind of thing much easier to handle. Instead of trying to set the values of nodes in the DOM on the client from the server, the client can implement event handlers and adjust the contents of the page accordingly. Jean-Paul
participants (2)
-
Jean-Paul Calderone
-
Johann Siegele