Domino Xpage上的域值传递.docx

上传人:b****2 文档编号:24558386 上传时间:2023-05-28 格式:DOCX 页数:13 大小:790.83KB
下载 相关 举报
Domino Xpage上的域值传递.docx_第1页
第1页 / 共13页
Domino Xpage上的域值传递.docx_第2页
第2页 / 共13页
Domino Xpage上的域值传递.docx_第3页
第3页 / 共13页
Domino Xpage上的域值传递.docx_第4页
第4页 / 共13页
Domino Xpage上的域值传递.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

Domino Xpage上的域值传递.docx

《Domino Xpage上的域值传递.docx》由会员分享,可在线阅读,更多相关《Domino Xpage上的域值传递.docx(13页珍藏版)》请在冰豆网上搜索。

Domino Xpage上的域值传递.docx

DominoXpage上的域值传递

DominoXpage上的域值传递

假如我们要给某个文档添加评论,实现简单的工作流,那么应该可以记录用户名,目前Xpage没有提供调用地址簿的控件,在这里我们用简单的域传递方式来进行替代。

当然为了确保数据完整性,我们必须确认用户输入的用户名在公共通讯录中存在;并且文档的作者不能添加他自己为评论者。

在我们以前创建的自定义控件ccformdocumen中,在最后面加一个包含两行的表格,将第一行的单元格进行合并,如下图

然后在其中添加一个panel命名为panelReview的控件,如下图

在此控件中,再创建一个三行四列的表格,表格宽度为100%,并且每个单元格宽度为120px

在第一列的第二和第三行中,我们分别添加二个新的label控件,Addreviewer和Reviewers;在第二行的第二列中,我们添加一个名称叫做Addreviewer的宽度为400px的EditBOX控件,并且仅仅在编辑模式下可以访问,在其属性找哦你,Visiable变成可计算,并且在出现的对话框中写入代码:

currentDocument.isEditable();

在第二列的第三行中,添加一个ListBox控件,名称为ListReviewers,高60px,宽400px,可访问

紧接着在这个域的下面,同一个单元格中,我们再创建一个MultilineEditBox控件,名称为DataReviewers,设置宽度和高度与ListReviewers一样,最后的效果如下

我们现在为这个域绑定一些数据,在它对应的属性面板中,找到数据,然后选择高级,

写入公式currentDocument.ReviewerList作为它的值

现在我们在Addreviewer控件的旁边添加一个按钮,名称叫做Add,按钮类型为submit

我们通过区域变量(Scopevariables)reviewers里的值传给listbox域和multilineeditbox域

区域变量是指Javascript中的在特定范围里可以传递、共享值的变量

区域变量有三种,sessionScope、applicationScope、viewScope、requestScope;最常用的是requestScope,这里我们将使用requestScope变量获取Addreviewer控件里的值,并通过sessionScope将值传递到ListReviewers域中。

选择Addreviewer控件,在属性面板中的数据中,选择高级,里面有requestScope

现在我们对Add按钮进行处理,在样式里写入lotusBtn(这个样式我们前面用Themes调用),现在我们在此按钮的事件中,写入下列在服务器端执行的代码

varv=requestScope.reviewerName;

if(v!

=null){

if(sessionScope.reviewerName!

=null){

v+=",";

sessionScope.reviewerName+=v;

}else{

sessionScope.reviewerName=v;

}

requestScope.reviewerName="";

}

如下图:

在上面的代码中很简单,就是将当前的reviewerName的值取出来给sessionScope变量reviewerName(名称可以不一样),之后再将reviewerName清除掉。

选择Add按钮,在事件属性中,选择OnClick,然后在ServerOptions中,选择PartialUpdate,选择元素panelReview(即我们一开始在表格中创建的panel控件)

现在我们选择ListReviewers控件,在其属性中,选择Options属性,确定Allowmultipleselections选项被勾选中。

在Value属性中,选择AddFormulaItem,在里面写入下列公式@Explode(sessionScope.reviewerName,",",0)

之后我们在浏览器中进行预览,在Subject中输入主题;然后在reviewerName输入人名,点击添加按钮就可以看到数据写到ListReviewers中去了。

这是简单的域数据传递,并且是在数据校验之后才能将值从reviewerName添加到ListReviewers中去。

下列函数则并不需要经过域校验获取和设置域值

 

getComponent("AddReviewer").getSubmittedValue()

getComponent("AddReviewer").setSubmittedValue()

我们用以下代码来改写Add按钮,将"Donotvalidateorupdatedata"选项选中。

 

varrev=getComponent("AddReviewer");

varv=rev.getSubmittedValue();//Getthevalueofthereviewername

rev.setSubmittedValue("");

if((v!

="")&&(v!

=null)){

if(sessionScope.reviewerName!

=null){

v+=",";

sessionScope.reviewerName+=v;

}else{

sessionScope.reviewerName=v;

}

}

再将Add按钮的属性设置为Cancel

这时就可以直接添加了

别忘了,在每次导入页面的时候sessionScope变量reviewerName都要清空,选择ccformdocument控件,然后在事件属性中,Page->beforeofpageLoad中写入代码sessionScope.reviewerName=””即可。

再下一步,我们将值保存在DataReviewers域中,这样就可以随文档一些保存。

在Add按钮代码后面,我们添加下列代码

varlst=@Explode(sessionScope.reviewerName,",",0);

vartxt=getComponent("DataReviewers");

txt.setSubmittedValue(sessionScope.reviewerName)

如下图:

这样的话,值就可以传递到DataReviewers中去了,如下图

LotusDomino中使用Xpage技术打造通讯录

我们来完成一个类似通讯录的功能,我们可以添加人员,查看和修改,删除人员,我们假设我们的通讯录中只记录人员的名字和年龄字段。

先看看完成后的效果吧

 

点击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的属性要将DisplayType改为Number。

2.2.两个按钮的代码如下:

OK:

vardoc=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改为SessionScope。

3.2.OK按钮代码调整为如下:

vardoc=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了。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 节日庆典

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1