我有一个从另一个 .nsf 文件中提取数据的 Xpages 应用程序。我有一个链接到该数据库中的视图的视图面板。该视图中包含具有多种不同形式的文档。我希望能够以自己的形式(xpage)打开每个文档。
如何编写一个计算的在运行时,使用以下语句打开选定的文档:该语句将选择正确的 Xpage 来呈现文档。
我有一个从另一个 .nsf 文件中提取数据的 Xpages 应用程序。我有一个链接到该数据库中的视图的视图面板。该视图中包含具有多种不同形式的文档。我希望能够以自己的形式(xpage)打开每个文档。
如何编写一个计算的在运行时,使用以下语句打开选定的文档:该语句将选择正确的 Xpage 来呈现文档。
您有 2 个选项:
使用“使用与表单关联的 xpage”并编辑表单的属性
使用 SSJS 公式计算表单。您在视图控件var中提供一个变量名,以作为 XSPViewEntry 访问视图行。如果表单在视图列中,即使您不显示也使用 .getColumnValue 否则 getDocument.getItemValueString
那对你有用吗?
如果您使用数据视图组件而不是视图面板,您可以计算pageName
属性,引用var
属性以根据行所代表的文档为每一行返回不同的值。数据视图组件的灵活性还使您的应用看起来更像现代 Web 应用程序而不像 Excel 电子表格更容易。作为额外的奖励,移动主题调用渲染器,使每个数据视图实例看起来像一个原生移动列表,因此使用数据视图而不是视图面板可以简化移动开发。
我今天遇到了类似的问题。我只使用一个表单,但使用 3 个不同的 xpage 与此表单相关联。我在视图中有 3 种不同的文档类型。我使用 rowData 获取文档的类型。
try{
var v=rowData.getColumnValue("form");
if(v.indexOf("x")> -1){var page ="x.xsp"}
else if(v.indexOf("y") > -1){var page = "y.xsp"}
else{var page = "z.xsp"}
}catch(e){
var page = "x.xsp"
}
因此,对于您的视图,您可以使用表单的值创建一个列,然后您可以使用它。
我使用了扩展库动态视图控件,它有一个事件,您可以编写代码来获取选中的 NotesViewEntry 的句柄。有关示例,请参阅演示数据库页面 Domino_DynamicView.xsp 和自定义事件处理程序选项卡...
请注意,在 8.5.3(我还没有升级)中,如果您为 onColumnClick 添加或编辑 eventHandler,它将作为 xe:eventHandler 添加到 XPages 源...它需要是 xp:eventHandler 才能工作。这样做的方法是从退出事件复制源中的代码并将其删除。重新创建事件并更新代码。然后回到源代码,将 eventHandler 中的标签更改为 xp:....
新人