Processing...

Suggested case list:

Using timer to refresh a grid

383guest172.69.33.12125nk0uiMay 7, 2020 7:23:47 AMlink

user model to move item to another listbox

120guest162.158.193.148d0n3krApr 2, 2020 5:28:28 AMlink

Disabled list item row passed to VM-1981

296fatih123160.83.36.13025nk0uiFeb 13, 2018 4:25:44 PMlink

Disabled list item row passed to VM-1981

295fatih123160.83.36.13025nk0uiFeb 13, 2018 4:25:16 PMlink

Disabled list item row passed to VM-1981

294fatih123160.83.36.13225nk0uiFeb 13, 2018 3:30:44 PMlink

grid sample with ListModel/RowRenderer

816guest80.82.2.1312vah9ajFeb 21, 2017 11:42:21 AMlink

grid sample with ListModel/RowRenderer

809guest175.98.113.1622vah9ajJan 26, 2017 9:19:33 AMlink

grid sample with ListModel/RowRenderer

196guest79.185.142.402vah9ajApr 26, 2014 10:53:57 PMlink

grid sample with ListModel/RowRenderer

195guest79.185.142.402vah9ajApr 26, 2014 10:53:54 PMlink

grid sample with ListModel/RowRenderer

194guest79.185.142.402vah9ajApr 26, 2014 10:53:51 PMlink

grid sample with ListModel/RowRenderer

193guest79.185.142.402vah9ajApr 26, 2014 10:53:48 PMlink

grid sample with ListModel/RowRenderer

192guest79.185.142.402vah9ajApr 26, 2014 10:53:44 PMlink

grid sample with ListModel/RowRenderer

191guest79.185.142.402vah9ajApr 26, 2014 10:53:40 PMlink

Hierarchy table without using ZK PE/EE

1aaknai151.28.135.2131s871daJul 29, 2013 11:02:46 PMlink

grid sample with ListModel/RowRenderer

128aaknai151.28.135.2132vah9ajJul 29, 2013 7:20:00 PMlink

user model to move item to another listbox

1TonyQ114.25.109.94d0n3krApr 21, 2012 10:43:27 AMlink

Using timer to refresh a grid

1TonyQ220.133.44.3725nk0uiFeb 17, 2012 3:17:34 AMlink

Fire a event from child iframe

1TonyQ220.133.44.372eupjotFeb 3, 2012 5:04:52 AMlink

Textbox input restriction sample

1TonyQ72.21.245.2431b3nlr0Dec 20, 2011 10:09:10 AMlink

Test web core taglib in ZUL

1TonyQ198.203.175.175ofqkemDec 17, 2011 3:36:08 AMlink

Latest 10 Fiddles :

constraint binding textbox

3guest172.68.151.16220peldaDec 5, 2025 5:08:19 PMlink

Another new ZK fiddle

2guest172.68.151.16320peldaDec 5, 2025 5:07:51 PMlink

Another new ZK fiddle

1guest172.68.151.16220peldaDec 5, 2025 5:07:32 PMlink

Another new ZK fiddle

1peggypeng172.71.154.99364f4neDec 5, 2025 9:24:31 AMlink

tooltip example

2guest104.22.23.13rc1ntoDec 4, 2025 2:23:45 PMlink

Another new ZK fiddle

1guest172.69.134.2277t7602Dec 4, 2025 1:40:46 PMlink

Another new ZK fiddle

1peggypeng104.22.17.1802df6e3oDec 4, 2025 8:41:29 AMlink

onClose

1peggypeng172.68.87.248j8kd8aDec 3, 2025 4:10:26 AMlink

Another new ZK fiddle

1peggypeng172.69.134.2271rm7f4eNov 26, 2025 3:31:24 AMlink

ZK-5912-Suggestion

2rebeccalai104.22.20.1442qrmiiuNov 26, 2025 2:07:15 AMlink

import script and evalJavascript in event

2guest172.68.146.11026i4g3mJan 6, 2021 8:37:37 AMlink

resources

index.zulzul<zk> <script src="Hello.js" /> <div width="100%" height="100%" apply="pkg$.HelloController"> <iframe src="test.html"> </iframe> <button id="helloButton" label="Hello"/> </div> </zk> HelloController.javajavaimport org.zkoss.zk.ui.*; import org.zkoss.zk.ui.event.*; import org.zkoss.zk.ui.util.*; import org.zkoss.zk.ui.ext.*; import org.zkoss.zul.*; public class HelloController extends GenericForwardComposer{ public void onClick$helloButton(Event event) { String jsCommand = "sayHello()"; Clients.evalJavaScript(jsCommand); } } notificationFx.jsjavascript/** * notificationFx.js v1.0.0 * http://www.codrops.com * * Licensed under the MIT license. * http://www.opensource.org/licenses/mit-license.php * * Copyright 2014, Codrops * http://www.codrops.com */ ;( function( window ) { 'use strict'; var docElem = window.document.documentElement, support = { animations : Modernizr.cssanimations }, animEndEventNames = { 'WebkitAnimation' : 'webkitAnimationEnd', 'OAnimation' : 'oAnimationEnd', 'msAnimation' : 'MSAnimationEnd', 'animation' : 'animationend' }, // animation end event name animEndEventName = animEndEventNames[ Modernizr.prefixed( 'animation' ) ]; /** * extend obj function */ function extend( a, b ) { for( var key in b ) { if( b.hasOwnProperty( key ) ) { a[key] = b[key]; } } return a; } /** * NotificationFx function */ function NotificationFx( options ) { this.options = extend( {}, this.options ); extend( this.options, options ); this._init(); } /** * NotificationFx options */ NotificationFx.prototype.options = { // element to which the notification will be appended // defaults to the document.body wrapper : document.body, // the message message : 'yo!', // layout type: growl|attached|bar|other layout : 'growl', // effects for the specified layout: // for growl layout: scale|slide|genie|jelly // for attached layout: flip|bouncyflip // for other layout: boxspinner|cornerexpand|loadingcircle|thumbslider // ... effect : 'slide', // notice, warning, error, success // will add class ns-type-warning, ns-type-error or ns-type-success type : 'error', // if the user doesn´t close the notification then we remove it // after the following time ttl : 6000, messageType : 'success', // callbacks onClose : function() { return false; }, onOpen : function() { return false; } } /** * init function * initialize and cache some vars */ NotificationFx.prototype._init = function() { // create HTML structure this.ntf = document.createElement( 'div' ); this.ntf.className = 'ns-box ns-' + this.options.layout + ' ns-effect-' + this.options.effect + ' ns-type-' + this.options.type + ' ns-box-'+this.options.messageType; var strinner = '<div class="ns-box-inner">'; strinner += this.options.message; strinner += '</div>'; strinner += '<span class="ns-close"></span></div>'; this.ntf.innerHTML = strinner; // append to body or the element specified in options.wrapper this.options.wrapper.insertBefore( this.ntf, this.options.wrapper.firstChild ); // dismiss after [options.ttl]ms var self = this; if(this.options.ttl) { // checks to make sure ttl is not set to false in notification initialization this.dismissttl = setTimeout( function() { if( self.active ) { self.dismiss(); } }, this.options.ttl ); } // init events this._initEvents(); } /** * init events */ NotificationFx.prototype._initEvents = function() { var self = this; // dismiss notification this.ntf.querySelector( '.ns-close' ).addEventListener( 'click', function() { self.dismiss(); } ); } /** * show the notification */ NotificationFx.prototype.show = function() { this.active = true; classie.remove( this.ntf, 'ns-hide' ); classie.add( this.ntf, 'ns-show' ); if (typeof this.options.onOpen === 'function') this.options.onOpen(); } /** * dismiss the notification */ NotificationFx.prototype.dismiss = function() { var self = this; this.active = false; clearTimeout( this.dismissttl ); classie.remove( this.ntf, 'ns-show' ); setTimeout( function() { classie.add( self.ntf, 'ns-hide' ); // callback if (typeof self.options.onClose === 'function') self.options.onClose(); }, 25 ); // after animation ends remove ntf from the DOM var onEndAnimationFn = function( ev ) { if( support.animations ) { if( ev.target !== self.ntf ) return false; this.removeEventListener( animEndEventName, onEndAnimationFn ); } self.options.wrapper.removeChild( self.ntf ); }; if( support.animations ) { this.ntf.addEventListener( animEndEventName, onEndAnimationFn ); } else { onEndAnimationFn(); } } /** * add to global namespace */ window.NotificationFx = NotificationFx; } )( window ); graph.zulzul<zk> <div>Welcome to ZK Fiddle , run it right now!</div> <button id="btn" label="Click Me To Evalute Event Binding With Composer" /> </zk> test.htmlhtml<html> <head> <title>Hello</title> </head> <body> <p id='comment'>hello</p> </body> <script> function setValue(){ var element = document.getElementById("comment"); element.innerHtml = "OK"; } setValue(); </script> </html>