client-side programming客户端修改值,但服务端获取仍然旧值的解决办法

本文主要是介绍client-side programming客户端修改值,但服务端获取仍然旧值的解决办法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

样例:

 

Xml代码 复制代码  收藏代码
  1. <window xmlns:w="client" apply="demoComposer">  
  2.   
  3.   <button label="仅修改客户端" w:onClick="zk.Widget.$(jq('$txtUsername')).setValue('sun4love');zk.log('setValue方法修改完毕');"/>  
  4.   
  5.   <button label="修改值并通知服务器端" w:onClick="zk.Widget.$(jq('$txtUsername')).smartUpdate('value','sun4love');zk.log('smartUpdate方法修改完毕');"/>  
  6.   
  7.   
  8.   <button label="服务器端获值" forward="onGetUsername"/>  
  9.   <textbox id="txtUsername" value="hello!"/>  
  10. </window>  
<window xmlns:w="client" apply="demoComposer"><button label="仅修改客户端" w:onClick="zk.Widget.$(jq('$txtUsername')).setValue('sun4love');zk.log('setValue方法修改完毕');"/><button label="修改值并通知服务器端" w:onClick="zk.Widget.$(jq('$txtUsername')).smartUpdate('value','sun4love');zk.log('smartUpdate方法修改完毕');"/><button label="服务器端获值" forward="onGetUsername"/><textbox id="txtUsername" value="hello!"/>
</window>

 

Java代码 复制代码  收藏代码
  1. private Textbox txtUsername   
  2. public void onGetUsername(){   
  3.      System.out.println( txtUsername.getValue());   
  4. }  
private Textbox txtUsername
public void onGetUsername(){System.out.println( txtUsername.getValue());
}

 

 

通常情况下我们这样修改txtUsername的值zk.Widget.$(jq("$txtUsername")).setValue("sun4love");

 

但当我们点击 服务器端获值 按钮的时候,非常遗憾,获得值仍然是hello!,而不是sun4love

 

这是因为setValue方法并没有告诉服务器端txtUsername的值有所改变,服务器端仅记得上次的值而已,

 

所以我们必须通知服务器端值的改变才可以,在今天之前我是通过zAu.send(new zk.Event(txtUsername,"onBlur"));实现的,非常麻烦,今天群内朋友PM 问了相关问题,我又看看看jsdoc(zk-jsdocXXX.zip)发现widget的smartUpdate方法,

 

smartUpdate的说明:Smart-updates a property of the peer component associated with this widget, running at the server, with the specified value.

 

意思是说Smart-updates 是每个组件相关widget的一个属性,运行于服务器端,

 

方法签名:smartUpdate(String name, Object value, int timeout) 

 

name是组件标签的属性名,本例是value,Object value是sun4love

 

 

 

 

 

注意:从zk5.0.7开始,zk默认禁止smartUpdate,如果启用这里有两个方法

 

1,启用单一组件实例的smartUpdate功能

 

 

Xml代码 复制代码  收藏代码
  1. <window>  
  2.     <custom-attribute org.zkoss.zk.ui.updateByClient="true"/>  
  3. ...   
  4. </window>  
<window><custom-attribute org.zkoss.zk.ui.updateByClient="true"/>
...
</window>

 2,启用某一组件所有实例的smartUpdate 启用配置见这里

 

 

Xml代码 复制代码  收藏代码
  1. <component>  
  2.     <component-name>button</component-name>  
  3.     <extends>button</extends>  
  4.     <custom-attribute>  
  5.         <attribute-name>org.zkoss.zk.ui.updateByClient</attribute-name>  
  6.         <attribute-value>true</attribute-value>  
  7.     </custom-attribute>  
  8. </component>  
<component><component-name>button</component-name><extends>button</extends><custom-attribute><attribute-name>org.zkoss.zk.ui.updateByClient</attribute-name><attribute-value>true</attribute-value></custom-attribute>
</component>

 

 

Great thanks,PM and  zhongji 

这篇关于client-side programming客户端修改值,但服务端获取仍然旧值的解决办法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/608384

相关文章

C#如何在Excel文档中获取分页信息

《C#如何在Excel文档中获取分页信息》在日常工作中,我们经常需要处理大量的Excel数据,本文将深入探讨如何利用Spire.XLSfor.NET,高效准确地获取Excel文档中的分页信息,包括水平... 目录理解Excel中的分页机制借助 Spire.XLS for .NET 获取分页信息为什么选择 S

springboot3.x使用@NacosValue无法获取配置信息的解决过程

《springboot3.x使用@NacosValue无法获取配置信息的解决过程》在SpringBoot3.x中升级Nacos依赖后,使用@NacosValue无法动态获取配置,通过引入SpringC... 目录一、python问题描述二、解决方案总结一、问题描述springboot从2android.x

MySQL底层文件的查看和修改方法

《MySQL底层文件的查看和修改方法》MySQL底层文件分为文本类(可安全查看/修改)和二进制类(禁止手动操作),以下按「查看方法、修改方法、风险管控三部分详细说明,所有操作均以Linux环境为例,需... 目录引言一、mysql 底层文件的查看方法1. 先定位核心文件路径(基础前提)2. 文本类文件(可直

springboot的controller中如何获取applicatim.yml的配置值

《springboot的controller中如何获取applicatim.yml的配置值》本文介绍了在SpringBoot的Controller中获取application.yml配置值的四种方式,... 目录1. 使用@Value注解(最常用)application.yml 配置Controller 中

kingbase修改权限实现方式

《kingbase修改权限实现方式》该文章详细介绍了如何在数据库中创建用户并赋予其相应的权限,包括创建用户、回收默认权限、创建数据库、赋权数据库权限、创建只读用户以及回收权限等步骤... 目录前言使用步骤总结前言创建用户后对数据库对象的读写权限进行修改使用步骤1、创建用户create user cs

linux实现对.jar文件的配置文件进行修改

《linux实现对.jar文件的配置文件进行修改》文章讲述了如何使用Linux系统修改.jar文件的配置文件,包括进入文件夹、编辑文件、保存并退出编辑器,以及重新启动项目... 目录linux对.jar文件的配置文件进行修改第一步第二步 第三步第四步总结linux对.jar文件的配置文件进行修改第一步进

golang实现nacos获取配置和服务注册-支持集群详解

《golang实现nacos获取配置和服务注册-支持集群详解》文章介绍了如何在Go语言中使用Nacos获取配置和服务注册,支持集群初始化,客户端结构体中的IpAddresses可以配置多个地址,新客户... 目录golang nacos获取配置和服务注册-支持集群初始化客户端可选参数配置new一个客户端 支

Python包管理工具uv下载python版本慢问题解决办法

《Python包管理工具uv下载python版本慢问题解决办法》uv是一个非常快的Python包和项目管理器,用Rust编写,使用热缓存安装Trio的依赖项的速度对比,:本文主要介绍Python包... 目录发现问题对于 MACOS / linux 用户 (zsh/bash):对于 Windows 用户:总

Python实现Word文档自动化的操作大全(批量生成、模板填充与内容修改)

《Python实现Word文档自动化的操作大全(批量生成、模板填充与内容修改)》在职场中,Word文档是公认的好伙伴,但你有没有被它折磨过?批量生成合同、制作报告以及发放证书/通知等等,这些重复、低效... 目录重复性文档制作,手动填充模板,效率低下还易错1.python-docx入门:Word文档的“瑞士

Java Lettuce 客户端入门到生产的实现步骤

《JavaLettuce客户端入门到生产的实现步骤》本文主要介绍了JavaLettuce客户端入门到生产的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 目录1 安装依赖MavenGradle2 最小化连接示例3 核心特性速览4 生产环境配置建议5 常见问题