Suggested case list:
Using timer to refresh a grid
383guest172.69.33.12125nk0uiMay 7, 2020 7:23:47 AMlinkuser model to move item to another listbox
120guest162.158.193.148d0n3krApr 2, 2020 5:28:28 AMlinkDisabled list item row passed to VM-1981
296fatih123160.83.36.13025nk0uiFeb 13, 2018 4:25:44 PMlinkDisabled list item row passed to VM-1981
295fatih123160.83.36.13025nk0uiFeb 13, 2018 4:25:16 PMlinkDisabled list item row passed to VM-1981
294fatih123160.83.36.13225nk0uiFeb 13, 2018 3:30:44 PMlinkgrid sample with ListModel/RowRenderer
816guest80.82.2.1312vah9ajFeb 21, 2017 11:42:21 AMlinkgrid sample with ListModel/RowRenderer
809guest175.98.113.1622vah9ajJan 26, 2017 9:19:33 AMlinkgrid sample with ListModel/RowRenderer
196guest79.185.142.402vah9ajApr 26, 2014 10:53:57 PMlinkgrid sample with ListModel/RowRenderer
195guest79.185.142.402vah9ajApr 26, 2014 10:53:54 PMlinkgrid sample with ListModel/RowRenderer
194guest79.185.142.402vah9ajApr 26, 2014 10:53:51 PMlinkgrid sample with ListModel/RowRenderer
193guest79.185.142.402vah9ajApr 26, 2014 10:53:48 PMlinkgrid sample with ListModel/RowRenderer
192guest79.185.142.402vah9ajApr 26, 2014 10:53:44 PMlinkgrid sample with ListModel/RowRenderer
191guest79.185.142.402vah9ajApr 26, 2014 10:53:40 PMlinkHierarchy table without using ZK PE/EE
1aaknai151.28.135.2131s871daJul 29, 2013 11:02:46 PMlinkgrid sample with ListModel/RowRenderer
128aaknai151.28.135.2132vah9ajJul 29, 2013 7:20:00 PMlinkuser model to move item to another listbox
1TonyQ114.25.109.94d0n3krApr 21, 2012 10:43:27 AMlinkUsing timer to refresh a grid
1TonyQ220.133.44.3725nk0uiFeb 17, 2012 3:17:34 AMlinkFire a event from child iframe
1TonyQ220.133.44.372eupjotFeb 3, 2012 5:04:52 AMlinkTextbox input restriction sample
1TonyQ72.21.245.2431b3nlr0Dec 20, 2011 10:09:10 AMlinkTest web core taglib in ZUL
1TonyQ198.203.175.175ofqkemDec 17, 2011 3:36:08 AMlinkLatest 10 Fiddles :
Another new ZK fiddle
4hiepgau172.71.214.246gig0j7May 3, 2024 11:48:47 PMlinkAnother new ZK fiddle
3hiepgau172.71.218.113gig0j7May 3, 2024 11:46:46 PMlinkAnother new ZK fiddle
2hiepgau162.158.178.201gig0j7May 3, 2024 11:40:57 PMlinkAnother new ZK fiddle
1hiepgau162.158.179.103gig0j7May 3, 2024 10:49:45 PMlinkcustom menu on grid
7hiepgau172.71.214.52261rcaiMay 3, 2024 9:27:35 PMlinkcustom menu on grid
6hiepgau172.71.214.53261rcaiMay 3, 2024 9:26:52 PMlinkcustom menu on grid
5hiepgau172.71.214.53261rcaiMay 3, 2024 9:25:26 PMlinkcustom menu on grid
4hiepgau162.158.114.139261rcaiMay 3, 2024 9:20:17 PMlinkAnother new ZK fiddle
1guest172.70.80.2021nil9qsMay 3, 2024 2:07:26 PMlinkcustom menu on grid
3hiepgau162.158.179.130261rcaiMay 3, 2024 11:38:30 AMlinkzk timeout simplified
18guest172.68.125.15885cq6Apr 22, 2024 5:41:16 PMlinkresources
index.zulzul<?page automaticTimeout="true"?>
<?script src="expirationCountdownScript.js" ?>
<zk xmlns:w="client">
<window border="normal">
<vlayout>
<label w:onBind="startSessionExpirationInterval(this)"/>
<button label="test timeout" onClick='Messagebox.show("test")'/>
</vlayout>
</window>
</zk>
expirationCountdownScript.jsjavascriptvar expirationTime;
var expirationInterval;
function startSessionExpirationInterval(wgt){
if(!zk.timeout){
console.warn('zk auto-timeout required!')
return
}
function sessionExpirationLabelUpdate(){
var currentTime = new Date();
var remaining = expirationTime - currentTime;
if(remaining <= 0){
wgt.setValue("EXPIRED");
clearInterval(expirationInterval);
return;
}
wgt.setValue(msToTime(remaining));
}
return setInterval(sessionExpirationLabelUpdate, 1000);
}
function sessionExpirationLabelUpdate(){
var currentTime = new Date();
var remaining = expirationTime - currentTime;
if(remaining <= 0){
getCountdownLabel().setValue("EXPIRED");
clearInterval(expirationInterval);
return;
}
getCountdownLabel().setValue(msToTime(remaining));
}
function calcTimeout(val){
return Math.floor(val>540?val-60:val<45?val-5:val/1.125);
}
function msToTime(duration) {
var milliseconds = parseInt((duration%1000)/100)
, seconds = parseInt((duration/1000)%60)
, minutes = parseInt((duration/(1000*60))%60)
, hours = parseInt((duration/(1000*60*60))%24);
hours = (hours < 10) ? "0" + hours : hours;
minutes = (minutes < 10) ? "0" + minutes : minutes;
seconds = (seconds < 10) ? "0" + seconds : seconds;
return hours + ":" + minutes + ":" + seconds;
}
function setExpiration(){
var expiration = new Date();
expiration.setSeconds(expiration.getSeconds() + calcTimeout(zk.timeout));
expirationTime = expiration;
}
zWatch.listen({
// reset the expiration when each time a au request sent
onSend: {
onSend: function (ctl, arg0) {
setExpiration();
}
},
});
setExpiration();
test.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.zk.au.*;
import org.zkoss.zk.au.out.*;
import org.zkoss.zul.*;
public class test extends GenericForwardComposer{
public void doAfterCompose(Component comp) throws Exception {
super.doAfterCompose(comp);
}
public void onClick$btn(Event e) throws InterruptedException{
int yn = Messagebox.show(" 2123", "44444", Messagebox.YES | Messagebox.NO, Messagebox.QUESTION);
if(yn==16){
Clients.showBusy("IndexController.Siging"); // 登入中,請稍候...
}
}
}