如何计算动态内容控件的BasicLeafNode的Selected属性 - 更新日期03/26/2014

时间:2014-03-19 19:11:52

标签: xpages xpages-extlib

我创建了一个包含以下内容的XPage:首先使用Application Layout创建自定义布局控件。我将布局控件添加到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>

然后我放入左栏中的导航控件并创建BasicLeafNodes以对应我使用href属性的动态内容控件并使用#content =&#34;&#34;显示正确的内容。

这很好用,但是在选择它们时,我在确定如何在导航器中突出显示选项时遇到问题。我知道我需要计算Selectd属性,但我无法弄清楚如何获取xp:key值,以便我可以将它与SubmitValue进行比较。我知道这可能很简单,但我无法弄清楚。

有人可以赐教。

谢谢,

MJ

ADDED 03/26/2014 - 我觉得它与使用动态内容控件的href属性执行内容切换有关。我知道这使得BasicLeafNodes链接。因此,不确定导航器如何记录正在执行的链接以及如何捕获它。

MJ

3 个答案:

答案 0 :(得分:3)

添加值是submitValue属性

enter image description here

在onItemClick事件中

enter image description here

将提交的值分配给viewScope变量

viewScope.Selected=context.getSubmittedValue()

enter image description here 最后检查viewScope变量是否等于所选属性中的项目提交值。这需要计算

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

答案 1 :(得分:0)

以下内容对我有用:

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

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

答案 2 :(得分:0)

我是通过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")
}