-
FEATURED COMPONENTS
First time here? Check out the FAQ!
I'm using both Client-side javascript and Server-side ZK. I'd like to be able to have a client-side listener be called when a certain event is posted on the server.
Ideally, it should work like this:
Client side:
wdgt.setListener("onOK", function(evt) {alert("onOK is called.");});
Server side (in a composer):
Events.sendEvent("onOK", wdgt, "OK");
However, I haven't got this to work. Maybe I am not setting up the listener correctly? Any help is welcome.
Thanks.
-JJ
Hi JJ,
Maybe you can try call widget function directly by response directly as below
<zk xmlns:w="client"> <zscript><![CDATA[ import org.zkoss.zul.Button; import org.zkoss.zk.au.out.AuInvoke; class CustomButton extends Button { public void sendResponse(String key, AuInvoke auInvoke) { response(key, auInvoke); } } ]]></zscript> <label id="lb" value="label"> <attribute w:name="bind_"> function (desktop, skipper, after) { this.$bind_(desktop, skipper, after); this.onTestEvt = function (evtnm, msg) { zk.log(evtnm); zk.log(msg); } } </attribute> </label> <button use="CustomButton" label="call 'onTestEvt' of label"> <attribute name="onClick"><![CDATA[ self.sendResponse("label", new AuInvoke(lb, "onTestEvt", new Object[] {"onTestEvent", "message"})); ]]></attribute> </button> </zk>
Regards,
Ben
Asked: 2012-08-13 20:37:54 +0800
Seen: 172 times
Last updated: Aug 16 '12