Xpages 单击Navigator条目隐藏我的节点

Xpages 单击Navigator条目隐藏我的节点,xpages,xpages-extlib,Xpages,Xpages Extlib,当xPage加载时,渲染代码工作正常。但是,当用户单击registerfore-Statements时,它们都会隐藏起来,直到我手动刷新页面。我尝试进行完整更新,但代码的其他部分在尝试访问一些JavaBean时失败 用于渲染的代码是我的全局javascript库中的 有什么想法吗 <xe:navigator id="navigator1"> <xe:this.treeNodes> <xe:basicContainerNode

当xPage加载时,渲染代码工作正常。但是,当用户单击registerfore-Statements时,它们都会隐藏起来,直到我手动刷新页面。我尝试进行完整更新,但代码的其他部分在尝试访问一些JavaBean时失败

用于渲染的代码是我的全局javascript库中的

有什么想法吗

<xe:navigator id="navigator1">
        <xe:this.treeNodes>
            <xe:basicContainerNode label="Register for e-Statements"
                submitValue="RegisterForEstatements" enabled="true">
             <xe:this.rendered><![CDATA[#{javascript:myEStatements.renderStatements()}]]>
                </xe:this.rendered>
            </xe:basicContainerNode>

            <xe:basicLeafNode label="View My e-Statements" onClick="linkToEstatements();">
                <xe:this.rendered><![CDATA[#{javascript:myEStatements.renderStatements()}]]>
                </xe:this.rendered>
            </xe:basicLeafNode>
        </xe:this.treeNodes>

        <xp:eventHandler event="onItemClick" submit="true"
            refreshMode="partial" refreshId="navigator1">
            <xp:this.action><![CDATA[#{javascript:                      
            if( context.getSubmittedValue() == "RegisterForEstatements" )
            {
                sessionScope.put( "dialogAcceptEStatementTitle", "Accept e-Statements!" );
                var dialogAcceptEstatements = getComponent( "dlgAcceptEStatements" );
                dialogAcceptEstatements.show();
                return "";
            }        
            sessionScope.put( "dialogOopsTitle", "Oopps!" );
            sessionScope.put( "dialogOopsMessage", "\nThis Feature Has Not Been Enabled Yet!" );
            var dialogOops = getComponent( "dialogOops" );
            dialogOops.show();
            return "";

            }]]>
            </xp:this.action>
        </xp:eventHandler>
        }]]>
</xe:navigator>

您必须在JS库和JavaBean中显示相关代码,否则这就是猜测游戏。如果myEstatements是一个托管bean,您可以像{myEstatements.renderStatements}一样直接执行EL,如果您的函数是boolean isRenderStatements{..},但这不是问题所在。我添加了额外的代码。我很好奇,如果你有什么想法,为什么我的豆子会在点击导航器时消失。。。应用程序配置文件闻起来像应用程序配置文件?您可能希望在代码中添加一个计算字段来返回该值,以查看它是否以您不期望的方式发生了更改我不明白您的意思。作为我创建的Bean的属性文件。我在这个自定义控件中尝试访问两个bean,当我在导航器中单击某个项时,它们似乎消失了。我得到的错误是找不到属性文件。不确定所有代码都在同一个自定义控件中,在加载页面时如何工作等。如果我将click事件从部分刷新更改为完全更新,我会得到相同的错误。我想说的是:在计算文本中直接显示bean的值。看一看前缀,它可能建议是一个应用程序范围变量?其他人会干涉吗?它超时了吗?为了弄清真相,您需要查看变量是否发生了我怀疑的变化——然后问题就在bean内部——并且您还需要用bean代码更新问题
var myEStatements = 
{
//  If the property receives Statements return true to display the e-Statement Links
//  in the occ navigator
"renderStatements" : function() 
{
    var result = false;
    try 
    {
        result = aPropertyProfile.getStatementCoupon_1().equalsIgnoreCase( "Statement" );
    } catch (e) 
    {
        print(e.message);
    }
    return result;
},

//  Fetch the e-Statement Accept Message
"getEStatementAcceptMessage" : function()
{
    var eStatementAcceptMessage = "";
    try
    {
        eStatementAcceptMessage = eStarService.getEStatementAcceptMessage();
    }  catch(e)
    {
        print( e.message );
    }
    return eStatementAcceptMessage;
}
}