Xpages 如何计算动态内容控件的BasicLeafNode的选定属性-更新日期:2014年3月26日

Xpages 如何计算动态内容控件的BasicLeafNode的选定属性-更新日期:2014年3月26日,xpages,xpages-extlib,Xpages,Xpages Extlib,我用以下内容创建了一个XPage:首先使用应用程序布局创建一个自定义布局控件。我将布局控件添加到xpage,然后添加了一个动态内容控件。我将控件配置如下: <xe:dynamicContent id="dynamicContent1" defaultFacet="GovernanceReviews" useHash="true"> <xp:this.facets> <xc:ccViewDocumentTemplates xp:key="DocumentTemplat

我用以下内容创建了一个XPage:首先使用应用程序布局创建一个自定义布局控件。我将布局控件添加到xpage,然后添加了一个动态内容控件。我将控件配置如下:

<xe:dynamicContent id="dynamicContent1" defaultFacet="GovernanceReviews"
useHash="true">
<xp:this.facets>
<xc:ccViewDocumentTemplates xp:key="DocumentTemplates"></xc:ccViewDocumentTemplates>

<xc:ccViewGovProcurementReviews xp:key="GovProcurementReviews"></xc:ccViewGovProcurementReviews>

<xc:ccViewGovRevReporting xp:key="GovRevReporting"></xc:ccViewGovRevReporting>

<xc:ccViewGovRevWOCompleted xp:key="GovRevWOCompleted"></xc:ccViewGovRevWOCompleted>

<xc:ccViewGovernanceReviews xp:key="GovernanceReviews"></xc:ccViewGovernanceReviews>

<xc:ccViewProfilesByType xp:key="ProfilesByType"></xc:ccViewProfilesByType>

<xc:ccViewProfilesWithTargetCompl xp:key="ProfilesWithTargetCompl"></xc:ccViewProfilesWithTargetCompl>

<xc:ccViewLastUpdated xp:key="LastUpdated"></xc:ccViewLastUpdated>

<xc:ccViewUserGuide xp:key="UserGuide"></xc:ccViewUserGuide>

<xc:ccViewTracking xp:key="Tracking"></xc:ccViewTracking>

</xp:this.facets>

</xe:dynamicContent>

然后,我在左列中插入了一个navigator控件,并创建了BasicLeafNodes以对应于动态内容控件。我使用href属性并使用#content=“”来显示正确的内容

这工作得很好,但我在弄清楚如何在选择导航器时突出显示选择时遇到了问题。我知道我需要计算Selectd属性,但我不知道如何获取xp:key值,以便将其与SubmitValue进行比较。我知道这可能很简单,但我想不出来

谁能给我点化一下吗

谢谢

乔丹

添加于2014年3月26日-我感觉这与使用动态内容控件的href属性执行内容切换有关。我知道这使得基本节点连接起来。因此,不确定导航器如何记录正在执行的链接以及如何捕获该链接


MJ

添加值是submitValue属性

在McClick事件中

将提交的值指定给viewScope变量

viewScope.Selected=context.getSubmittedValue()
最后检查viewScope变量是否等于选定属性中的item submit值。这需要计算

if(viewScope.Selected="byCategory"){
    return true
}else{
    return false
}

以下内容适用于我:

if(viewScope.Selected == "byCategory"){
    return true
} else{
    return false
}

必须使用两个相等的符号(或三个)进行相等性测试。一个相等的符号显然总是返回true。

我是通过jQuery实现的。只需将以下代码放入包含导航器的自定义控件

$( function() {
    if (window.location.hash.length > 0) {
        select()
    }
});

$(window).on('hashchange', function() {
    select();
});
function select() {
    $(".lotusColLeft .lotusMenu .lotusBottomCorner li").removeClass(
            "lotusSelected")
    $(".lotusColLeft .lotusMenu .lotusBottomCorner li a")
            .filter(
                    function() {
                        return window.location.hash.indexOf($(this).attr(
                                'href')) > -1
                    }).parent().addClass("lotusSelected")
}

好的,我试过了,现在所有的节点都高亮显示了。有什么想法吗?您在每个节点上添加了不同的值来检查吗?是的,我的if语句根据每个节点的submitvalue进行了检查。我试图将导航器代码添加到我的原始帖子中,但我认为它太大了。@Fridrik如果你给我电子邮件,我会将导航器代码发送给你。@xpagedeveloper.com