动态内容控件中的对话框

时间:2014-04-04 21:26:54

标签: modal-dialog xpages xpages-extlib

我有一个包含动态内容控件的自定义控件。动态内容显示多个自定义控件之一。然后将此控件添加到中间构面(callback1)。然后,导航器控制动态控件中的哪个面板显示。到目前为止,一切正常。 动态内容中显示的其中一个页面有一个调用对话框的按钮。单击该按钮时,看起来它正在尝试显示对话框,但它没有(没有报告错误)。 如果我将动态内容控件放在一个简单的XPage中并加载这个XPage并让面板与包含按钮的控件显示默认打开的对话框,它可以正常工作。 因此,扩展库应用程序布局似乎阻止对话框显示。我感到茫然,我让整个应用程序工作,但不在ext库应用程序布局中。浪费了大量的时间,而不是使用ext库应用程序布局也不是一个好选择。

1 个答案:

答案 0 :(得分:0)

发现问题。在Application Layout自定义控件上,我在onClientLoad中使用try {} catch获得了一些代码。如果此代码失败,则“阻止”对话框正常显示,但窗口的其他功能似乎正常。所以我不确定应用程序布局的内部工作到底出了什么问题,但是我将代码移到了BeforePageLoad事件中,现在一切正常。 这是我从onClientLoad转移到beforePageLoad的代码:

if (!sessionScope.containsKey("ssHelpRepID")){
    try{
        sessionScope.put("WFSRulesRepID",database.getProfileDocument("frmConfigProfile","").getItemValue("WFSRulesRepID")[0]);
        sessionScope.put("WFSRulesRepID_formula",database.getProfileDocument("frmConfigProfile","").getItemValue("WFSRulesRepID_formula")[0]);
        sessionScope.put("WFSHelpRepID",database.getProfileDocument("frmConfigProfile","").getItemValue("WFSHelpRepID")[0]);
        sessionScope.put("WFSHelpRepID_formula",database.getProfileDocument("frmConfigProfile","").getItemValue("WFSHelpRepID_formula")[0]);
    }catch(e){
        sessionScope.put("ssError","Error in setting Rep IDs");
    }
}

一旦我这样做,原始的应用程序布局开始允许显示对话框。很奇怪,希望我能把时间花在某人身上: - )