zk component develop
一、)java 类及方法
1)先开发一个服务器端的组件,通常是继承 abstractComponent ,如果是html 类型的组件,继承HtmlBaseComponent 就可以了。
2)如果需要一个widget需要通知服务器端组件,需要在服务器端的component上注册Client Event
http://docs.zkoss.org/wiki/Synchronize_States
addClientEvent(Button.class, Events.ON_FOCUS, 0);
3)在服务器端component 上调用客户端widget事件,
用response(event,message)
http://docs.zkoss.org/wiki/Invoke_Client_Special_Functions
二、)js文件
js 中的
$init 是widget的初始化方法
$define 就是定义widget 的get|set 方法
三、 获取单击单元格对应的列
<zk><zscript></zscript><listbox id="listbox" width="200px"><listhead><listheader label="col1"></listheader><listheader label="col2"></listheader></listhead><listitem><listcell label="a1" onclick="showColumn(self)"></listcell><listcell label="a2" onclick="showColumn(self)"></listcell></listitem><listitem><listcell label="b1" onclick="showColumn(self)"></listcell><listcell label="b2" onclick="showColumn(self)"></listcell></listitem></listbox></zk>
listbox grid tree 介绍
http://docs.zkoss.org/wiki/Grids,_Trees_and_Listbox
组件开发向导
http://docs.zkoss.org/wiki/ZK_5.0_Component_Imagepicker
1 、对于给组件设置menupopup 不起作用的情况
Menupopup menupopup = new Menupopup()
menupopup.appenChildren(new Menuitem("a")
Grid grid = new Grid()
grid.setContext(menupop)
注意:需要
menupop.setParent(grid) // 这个方法需要注意,不是所有的Component都支持Menupopup
也就是说 上下文菜单也需要在 html 中存在,然后,才显示
因为所有的内容都是以html为准备,所以任何组件都必须在html的上下文中存在。
2 、设置组件为灰色
yourTextbox.setReadonly(false);
yourListbox.setDisabled(false);
yourCheckbox.setDisabled(false);
3 、对于 Listbox & Grid 的增加和删除,可以通过对他们的Model进行 Add |Remove
Listbox.getModel().add(new Object)
Listbox.getModel().remove(Object)
4 、对于Domain,必须有一个为一个Id 主键,来确保CRUD的一致性 (也可以不要,不过,需要在 listbox 加一个隐藏列来处理)
5 、组件的方法复用 A 组件的onClick 方法是用 B 的onClick方法 --便于使用按钮和右键菜单一致的情况
ComponentsCtrl.applyForward(A, "onClick=B.onClick")
ComponentsCtrl.applyForward(e.target, "onClick=tbb_pre${zymenu.bh}.onClick")
6、验证组件数值的合法性
Textbox.getValue()就自动触发校验
7、jar 打包 ,对于不能够执行 generate-domain-from-database ,需要先将对应的类打包起来
jar cvf codeg.jar -C "F:\zkoss\Panform\out\production\Panform" .
12、如果对表头排序,不使用默认的排序方式,而使用数据排序
def onSortHeaders(){ Msztsbqk msztsbqk = new Msztsbqk() listheadmsztsbqk.getChildren().each { listheader -> listheader.onSort = {Event e -> Listheader l = (Listheader) listheader if (msztsbqk.properties.containsKey(l.getId())) { if (l.getSortDirection() == "ascending") { l.setSortDirection("descending") sortTj = l.getId() + " desc" }else{ l.setSortDirection("ascending") sortTj = l.getId() + " asc" } refresh(pagingmsztsbqk.getActivePage(),sortTj) e.stopPropagation() // 不执行默认的排序方式 } // def sortTj = ?"ascending":"descending" } } }
13、listbox 或者grid 如果使用了ModelList 方式来展示数据,如果要排序,需要
对listbox 排序
如果是使用model ,需要实现ListModelExt 来覆写sort
或者extend ListModelList ,使用
Components.sort(listbox.getItems(),cmpr); public class PanModeList extends ListModelList { private transient Listbox listbox;
public PanModeList(Listbox listbox, List list, boolean live) { super(list, live); this.listbox = listbox; } @Override public void sort(Comparator cmpr, boolean ascending) { Components.sort(listbox.getItems(),cmpr); // super.sort(cmpr, ascending); //To change body of overridden methods use File | Settings | File Templates. } }
然后、listbox.setModel(new PanModeList(listbox,Msqrqk.list(),false))
初始化一个组件
使用onCreate
http://docs.zkoss.org/wiki/ZK/How-Tos/Concepts-and-Tricks#Dynamic_cursor.2Ffield-sensitiv_help_and_tooltip
分享到:
相关推荐
Grails+ZK文档,Grails+ZK文档,Grails+ZK文档,Grails+ZK文档
通过阅读《Grails+groovy 完整参考手册.docx》,你可以更深入地了解这两个技术,包括它们的原理、最佳实践以及实际应用中的案例。无论你是初学者还是有经验的开发者,这份手册都将是你学习和提升技能的宝贵资源。
### Grails快速开发Web应用程序知识点解析 #### 一、Grails框架概述 - **定义**:Grails是一个基于Groovy语言构建的开源Model-View-Controller (MVC) Web开发框架。它旨在简化Web应用程序的开发流程,提高开发效率...
grails+Xfire webservice
Grails+Apache構築手順 apache配置手順 tomcat配置手順
Grails是一个基于Groovy语言的全栈式、敏捷的Web应用框架,它简化了Java开发流程,提供了丰富的插件生态系统。Spring Security,原名Acegi Security,是Spring框架的一个扩展,用于提供身份验证和授权服务,适用于...
Grails 是一个基于 Groovy 的开源 Web 开发框架,它融合了 Java 的强大功能和动态语言的灵活性,为开发者提供了一种高效、简洁的方式来构建复杂的 Web 应用程序。 ### 书籍概述 本书全面覆盖了 Grails 框架的各个...
Grails 是一个基于 Groovy 语言的全栈式开发框架,而 MongoDB 是一种流行的NoSQL数据库系统,以JSON格式存储数据,适合大数据量、高并发的场景。 首先,Grails 框架的核心特性包括 MVC(Model-View-Controller)...
Grails是一个基于Groovy语言的开源Web应用框架,它简化了Java开发流程,提供了MVC架构,使得开发快速且高效。其特点是自动化的代码生成、强大的插件系统和灵活的数据持久层支持。在与AngularJS集成时,Grails可以...
Grails是一个基于Java的开源Web应用程序框架,它使用Groovy语言进行开发,提供了高效、简洁的编程模型。在Grails中实现用户登录功能是构建任何Web应用的基础,它确保了数据的安全性和用户权限的管理。本示例将详细...
工具115 Proyecto para la MateriaTecnologíasOrientadas a Objetos,desarrollado en Grails + Oracle
**Grails 2.4.2 开发框架详解** Grails是一种高效且强大的开源Web应用程序框架,它在软件开发领域中扮演着重要角色。这款框架的设计理念是提高开发者的生产力,通过简化常见的开发任务,让开发者能够专注于业务逻辑...
### Grails 快速开发 Web 应用程序 #### 一、Grails 概述 Grails 是一种基于 Groovy 的开源应用框架,用于简化 Web 应用程序的开发过程。它采用约定优于配置的原则,这使得开发者可以更快地创建功能丰富的 Web ...
总结,Grails框架及其中文文档为开发者提供了强大的工具和丰富的资源,而FCKEditor插件则进一步增强了Grails在富文本编辑方面的功能。通过深入学习和实践,我们可以充分利用这些工具,提高开发效率,打造功能完善的...
Grails 是一个高效的开源 Web 应用框架,它集成了 Java 开发中广泛使用的成熟技术,如 Spring 和 Hibernate。然而,Grails 不仅仅是对这些技术的简单组合,它提供了一种全新的开发体验。通过执行 `grails create-app...
Grails 采用了敏捷开发的思想,遵循“约定优于配置”(Convention Over Configuration)和“不要重复自己”(Don’t Repeat Yourself,DRY)的原则,减少了大量繁琐的配置和模板代码,提高了开发效率。Grails 集成了...
Grails是一个基于Java平台的全栈式框架,它简化了Web应用的开发过程,而jQuery则是一款强大的JavaScript库,能够帮助我们实现高效的DOM操作、事件处理以及Ajax交互。 首先,Grails的MVC架构使得开发者可以快速搭建...
**Grails 敏捷开发** Grails 是一个基于 Groovy 语言的开源Web应用框架,设计用于快速开发、高效构建动态、敏捷的Web应用程序。它借鉴了Ruby on Rails的许多优秀理念,同时提供了Java平台的强大功能和兼容性。在...