我的文档有3个字段,可用于“分类”文档。对于面包屑,我希望显示这些字段,链接将打开该“类别”级别的视图(在视图中打开单个类别)。
现在所有“类别”字段在文档中都不是必需的。我以为我会编写一个SSJS函数来返回控制面包屑的必要对象,但是我很难搞清楚如何让链接真正起作用。
到目前为止,我的功能看起来像这样:
function getBreadCrumbs(doc:NotesDocument) {
var breadCrumbs=[];
//always add home as first level
var thisCrumb = {label:"Home", page:"/home"};
breadCrumbs.push(thisCrumb);
if(doc.hasItem("CategoryV2")) {
var label:String = doc.getItemValueString('CategoryV2');
if(label!="") {
var thisCrumb = {label:label, page:"/home"};
breadCrumbs.push(thisCrumb);
}
}
if(doc.hasItem("SectionNameV2")) {
var label:String = doc.getItemValueString('SectionNameV2');
if(label!="") {
var thisCrumb = {label:label, page:"/home"};
breadCrumbs.push(thisCrumb);
}
}
if(doc.hasItem("SubSectionNameV2")) {
var label:String = doc.getItemValueString('SubSectionNameV2');
if(label!="") {
var thisCrumb = {label:label, page:"/home"};
breadCrumbs.push(thisCrumb);
}
}
if(doc.hasItem("Subject")) {
var label:String = doc.getItemValueString('Subject');
if(label!="") {
var thisCrumb = {label:label};
breadCrumbs.push(thisCrumb);
}
}
return breadCrumbs;
}
让链接实际工作需要什么:“页面”对象是否需要以其他名称命名?
感谢您的帮助/提示
答案 0 :(得分:1)
傻傻的我......
在breadcrumbs控制peoperties中,我忘了指定Href属性等于crumb.page ...注意.xsp也是实际工作链接所必需的。
所以,有效的功能如下:
function getBreadCrumbs(doc:NotesDocument) {
var breadCrumbs=[];
//always add home as first level
var thisCrumb = {label:"Home", page:"/home.xsp"};
breadCrumbs.push(thisCrumb);
if(doc.hasItem("CategoryV2")) {
var label:String = doc.getItemValueString('CategoryV2');
if(label!="") {
var thisCrumb = {label:label, page:"/home.xsp?category="+label};
breadCrumbs.push(thisCrumb);
}
}
if(doc.hasItem("SectionNameV2")) {
var label:String = doc.getItemValueString('SectionNameV2');
if(label!="") {
var thisCrumb = {label:label, page:"/allDocs.xsp§ion="+label};
breadCrumbs.push(thisCrumb);
}
}
if(doc.hasItem("SubSectionNameV2")) {
var label:String = doc.getItemValueString('SubSectionNameV2');
if(label!="") {
var thisCrumb = {label:label, page:"/allDocs.xsp?subsection="+label};
breadCrumbs.push(thisCrumb);
}
}
if(doc.hasItem("Subject")) {
var label:String = doc.getItemValueString('Subject');
if(label!="") {
var thisCrumb = {label:label};
breadCrumbs.push(thisCrumb);
}
}
return breadCrumbs;
}
自定义控件中的代码现在是:
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core" xmlns:xc="http://www.ibm.com/xsp/custom"
xmlns:xe="http://www.ibm.com/xsp/coreex">
<xe:breadCrumbs id="breadCrumbs1">
<xe:this.treeNodes>
<xe:repeatTreeNode indexVar="1" var="crumb">
<xe:this.children>
<xe:basicLeafNode label="#{crumb.label}" href="#{javascript:crumb.page}">
</xe:basicLeafNode>
</xe:this.children>
<xe:this.value><![CDATA[#{javascript:getBreadCrumbs(document1.getDocument());}]]></xe:this.value>
</xe:repeatTreeNode>
</xe:this.treeNodes>
</xe:breadCrumbs>
</xp:view>
我错过的是设置&#34; Href&#34; basicLeaNode的值来自SSJS函数。我有标签,但是当我在SSJS函数中添加代码来构建fref时,我完全忘了修改自定义控件来添加这个属性......
这是一个loooooooooooooooon日......
就像一个FYI一样,allDocs.xsp页面显示一个视图,我使用URL参数过滤视图。