ZK 的label组件有setValue方法,如果当它的值发生变化的时候在客户实现一些特殊的效果,我们必须在客户端覆盖setValue操作。
<label id="stockPrice1" value="100" w:setValue="updateWithExplosion"/>
覆盖setValue()方法
function NAME (value, fromServer) {
this.$setValue(value, fromServer);
if (this.desktop) {
jq(this).WHATEVER_EFFECT
}
}
完整的页面代码
<?page title="Auto Generated index.zul"?>
<zk xmlns:w="http://www.zkoss.org/2005/zk/client">
<!-- CLIENT SIDE FUNCTIONALITY! -->
<?script src="jquery-ui-1.7.2.custom.min.js"?>
<script>
<![CDATA[
function updateWithExplosion (value, fromServer, updateColor) {
if(this.desktop) {
jq(this).effect("explode",
{},
500);
}
this.$setValue(value, fromServer);
if (this.desktop) {
if (updateColor) {
jq(this.getCaveNode().parentNode.parentNode).css({background: ((value<0) ? 'red':'green')});
this.setStyle('color: #FFFFFF');
}
jq(this).show("drop", {direction : "up"}, 1000);
}
}
function updateWithColorAndExplosion (value, fromServer) {
updateWithExplosion.call(this, value, fromServer, true);
}
]]>
</script>
<!-- SERVER SIDE FUNCTIONALITY! -->
<zscript>
<![CDATA[
public void updateStocks() {
Object[] values = getStockValues();
Label stockPrice = stockGrid.getFellow(values[0]);
Label stockDifference = stockGrid.getFellow(values[1]);
int newValue = ((Number)values[2]).intValue();
int difference = newValue - Integer.parseInt(stockPrice.getValue());
stockPrice.setValue(Long.toString(newValue));
stockDifference.setValue(Long.toString(difference));
}
public Object[] getStockValues() {
int randomControl = (int)Math.ceil(Math.random() * 3);
return new Object[] {"stockPrice" + randomControl,
"stockDifference" + randomControl,
(int)Math.ceil((Math.random() * 10) + 95)};
}
]]>
</zscript>
<!-- ZUL MARKUP (UI IMPLEMENTATION!) -->
<timer id="updateTimer" delay="3000" repeats="true" onTimer="updateStocks()" />
<grid id="stockGrid" fixedLayout="true">
<columns>
<column label="股票名称" />
<column label="股票价格" />
<column label="股票变化" />
</columns>
<rows>
<row>
<label id="stockName1" value="Ultra Corp: " />
<label id="stockPrice1" value="100" w:setValue="updateWithExplosion"/>
<label id="stockDifference1" value="0" w:setValue="updateWithColorAndExplosion"/>
</row>
<row>
<label id="stockName2" value="Amazing Corp: " />
<label id="stockPrice2" value="100" w:setValue="updateWithExplosion"/>
<label id="stockDifference2" value="0" w:setValue="updateWithColorAndExplosion"/>
</row>
<row>
<label id="stockName3" value="Great Corp: " />
<label id="stockPrice3" value="100" w:setValue="updateWithExplosion"/>
<label id="stockDifference3" value="0" w:setValue="updateWithColorAndExplosion"/>
</row>
</rows>
</grid>
</zk>
分享到:
相关推荐
ZK is the most proven Ajax + Mobile framework designed to maximize enterprise operation efficiency and minimize the development cost by its groundbreaking Direct RIA architecture. zk api jquery api
相比jQuery、Dojo、ExtJS等JavaScript框架,ZK的主要优势在于其服务器端处理和事件驱动模型,使得开发者可以专注于业务逻辑,而无需过多关注前端技术细节。同时,由于ZK是基于Java的,对于Java开发者来说,学习曲线...
2. **链式操作**:jQuery对象的方法返回的仍然是jQuery对象,这允许我们连续调用多个方法,如`$("#element").css("color", "red").fadeIn(500);`。 3. **DOM操作**:jQuery提供了简便的API来操作DOM,如`append()`...
Ajax,全称为Asynchronous JavaScript and XML,是一种创建动态网页的技术,允许在不刷新整个页面的情况下与服务器交换数据并更新部分网页内容。这极大地提升了用户体验,使得Web应用更加响应迅速,操作流畅。 Ajax...
LVBarcode 支持下列的条形码格式:Codabar,I2of5,Code39,ExCode39?,EAN-8,EAN-13,Code128 A,Code128 B,Code128 C,MSI,UPC-A,UPC-E. 中文转拼音库 pinyin4j Pinyin4j是一个流行的Java库,支持中文字符和拼音之间的...
LVBarcode 支持下列的条形码格式:Codabar,I2of5,Code39,ExCode39?,EAN-8,EAN-13,Code128 A,Code128 B,Code128 C,MSI,UPC-A,UPC-E. 中文转拼音库 pinyin4j Pinyin4j是一个流行的Java库,支持中文字符和拼音之间的...
LVBarcode 支持下列的条形码格式:Codabar,I2of5,Code39,ExCode39?,EAN-8,EAN-13,Code128 A,Code128 B,Code128 C,MSI,UPC-A,UPC-E. 中文转拼音库 pinyin4j Pinyin4j是一个流行的Java库,支持中文字符和拼音之间的...
LVBarcode 支持下列的条形码格式:Codabar,I2of5,Code39,ExCode39?,EAN-8,EAN-13,Code128 A,Code128 B,Code128 C,MSI,UPC-A,UPC-E. 中文转拼音库 pinyin4j Pinyin4j是一个流行的Java库,支持中文字符和拼音之间的...
LVBarcode 支持下列的条形码格式:Codabar,I2of5,Code39,ExCode39?,EAN-8,EAN-13,Code128 A,Code128 B,Code128 C,MSI,UPC-A,UPC-E. 中文转拼音库 pinyin4j Pinyin4j是一个流行的Java库,支持中文字符和拼音之间的...
LVBarcode 支持下列的条形码格式:Codabar,I2of5,Code39,ExCode39?,EAN-8,EAN-13,Code128 A,Code128 B,Code128 C,MSI,UPC-A,UPC-E. 中文转拼音库 pinyin4j Pinyin4j是一个流行的Java库,支持中文字符和拼音之间的...
LVBarcode 支持下列的条形码格式:Codabar,I2of5,Code39,ExCode39?,EAN-8,EAN-13,Code128 A,Code128 B,Code128 C,MSI,UPC-A,UPC-E. 中文转拼音库 pinyin4j Pinyin4j是一个流行的Java库,支持中文字符和拼音之间的...
LVBarcode 支持下列的条形码格式:Codabar,I2of5,Code39,ExCode39?,EAN-8,EAN-13,Code128 A,Code128 B,Code128 C,MSI,UPC-A,UPC-E. 中文转拼音库 pinyin4j Pinyin4j是一个流行的Java库,支持中文字符和拼音之间的...
LVBarcode 支持下列的条形码格式:Codabar,I2of5,Code39,ExCode39?,EAN-8,EAN-13,Code128 A,Code128 B,Code128 C,MSI,UPC-A,UPC-E. 中文转拼音库 pinyin4j Pinyin4j是一个流行的Java库,支持中文字符和拼音之间的...
LVBarcode 支持下列的条形码格式:Codabar,I2of5,Code39,ExCode39?,EAN-8,EAN-13,Code128 A,Code128 B,Code128 C,MSI,UPC-A,UPC-E. 中文转拼音库 pinyin4j Pinyin4j是一个流行的Java库,支持中文字符和拼音之间的...
LVBarcode 支持下列的条形码格式:Codabar,I2of5,Code39,ExCode39?,EAN-8,EAN-13,Code128 A,Code128 B,Code128 C,MSI,UPC-A,UPC-E. 中文转拼音库 pinyin4j Pinyin4j是一个流行的Java库,支持中文字符和拼音之间的...
LVBarcode 支持下列的条形码格式:Codabar,I2of5,Code39,ExCode39?,EAN-8,EAN-13,Code128 A,Code128 B,Code128 C,MSI,UPC-A,UPC-E. 中文转拼音库 pinyin4j Pinyin4j是一个流行的Java库,支持中文字符和拼音之间的...
LVBarcode 支持下列的条形码格式:Codabar,I2of5,Code39,ExCode39?,EAN-8,EAN-13,Code128 A,Code128 B,Code128 C,MSI,UPC-A,UPC-E. 中文转拼音库 pinyin4j Pinyin4j是一个流行的Java库,支持中文字符和拼音之间的...