我们来完成一个类似通讯录的功能,我们可以添加人员,查看和修改,删除人员,我们假设我们的通讯录中只记录人员的名字和年龄字段。先看看完成后的效果吧
点击New可以到新增人员页面,如下图:
编辑按钮后进入编辑页面,并将人员信息带过来,删除按钮可以将文档删除。
我们的项目中一种包含三个Xpage页面,CaryMain,CaryCreate和CaryUpdate。
1. CaryMain页面为主页面,提供新建按钮和显示信息。
1.1.该页面的New按钮的OnClick的事件代码如下:
1.2.DataTable属性设置如下:
Name的计算域值为:rowdoc.getItemValueString(“name”)
Age的计算域值为:rowdoc.getItemValueDouble(“age”)
LastModified的计算域值为:rowdoc.getLastModified()
编辑按钮的onclick代码如下:
sessionScope.docUnid = rowdoc.getUniversalID();
sessionScope.name = rowdoc.getItemValueString("name");
sessionScope.age = rowdoc.getItemValueDouble("age");
context.redirectToPage("CaryUpdate")
删除按钮的代码为:
rowdoc.remove(true)
2. CaryCreate页面为创建新文档页面
2.1.页面有两个EditBox提供Name和Age的输入,首先设置Name的属性,如下图
Age也同样设置,不过Age的属性要将Display Type改为Number。
2.2.两个按钮的代码如下:
OK:
var doc = database.createDocument();
doc.replaceItemValue("name", requestScope.name);
doc.replaceItemValue("age", requestScope.age)
doc.save();
context.redirectToPage("CaryMain")
Cancel:
context.redirectToPage("CaryMain")
3.CaryUpdate页面提供更改时的修改页面,
3.1.我们将CaryCreate所有设置拷贝一份到CaryUpdate页面,然后调整Name和Age和EditBox的属性,将属性中Data标签中的高级中的Parameter改为Session Scope。
3.2.OK按钮代码调整为如下:
var doc = database.getDocumentByUNID(sessionScope.docUnid);
doc.replaceItemValue("name", sessionScope.name);
doc.replaceItemValue("age", sessionScope.age);
doc.save();
sessionScope.name = null;
sessionScope.age = null;
context.redirectToPage("CaryMain")
这样我们一个简单的通讯录功能就完成了,也算入门Xpage了。