有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java无法预处理面板动态数据源,以在新建文档(视图模态)时设置默认值

面板上的动态数据源,部分刷新以从viewScope或其他加载值。加载前在数据源上设置默认值

在面板(新窗口)上执行完全刷新时,我通常使用beforePageLoad对数据源运行处理程序类,并在加载“文档”之前设置或检查值

我已将其移动到一个模式对话框中,在该对话框中动态设置数据源,然后打开模式。对于现有文档,我刚刚切换到使用postOpenDocument,相同的处理程序调用,效果非常好! 我已经尝试了所有其他的偷偷摸摸的方式和/或事件,但没有一个运行,或者我根本无法处理文档所在的“文档”: DominoDocument var=“doc”

有人不使用extLib对话框就这样做吗?(我相信extLib ajax调用将允许我再次使用beforePageLoad,但我尽量不使用这些,因为在我处理移动设置时可能会变得复杂

我已经尝试了所有事件(apply、queryNewDocument、postNew等)。 RestoreView之后、RenderResponse之前(<;-找不到文档句柄,似乎也不正确,但已尝试) 处理程序可能需要执行的处理量可能相当大,因此带有作用域的简单抛出捕获可能无法工作

<xp:panel id="dialogWrap" >
<xp:this.data>
    <xp:dominoDocument
        var="doc"
        formName="#{compositeData.formName}"
        action="{#viewScope.modalAction}"
        documentId="#{viewScope.UNID}"
        ignoreRequestParams="true">
        <xp:this.postNewDocument><![CDATA[#{javascript:
            print("postNewDocument");
            if(requestScope.loadDialog){
    compositeData.handlerDocument.beforePageLoad(doc);
            }
        }]]>
        </xp:this.postNewDocument>
        <xp:this.postOpenDocument><![CDATA[#{javascript:
            print("postOpenDocument");
            if(requestScope.loadDialog){
                compositeData.handlerDocument.beforePageLoad(doc);
            }
        }]]>
        </xp:this.postOpenDocument>
    </xp:dominoDocument>
</xp:this.data>
<!--etc...-->

postOpenDocument适用于现有记录 postNewDocument似乎需要对面板进行额外刷新才能获得句柄??,没有像上面那样工作

无错误msgs,此外,当我尝试在各种事件和生命周期中记录一组无效句柄时。。“表达式失败…” 我就是找不到一种方法来调用newDocument上的处理程序,从不运行。。。 如果可能的话,我不想使用extlibdialog或其他ajax-to-iframe方法


共 (1) 个答案

  1. # 1 楼答案

    首先是一些警告。自从我开发了一个没有扩展库的应用程序以来,大概已经八年了。从8.5.3开始,我只提倡使用扩展库。如果您没有使用扩展库,您可能需要了解对话框发生了什么-带有Dojo的对话框从组件树中移出,您需要自己处理它们。目前还不清楚您的对话框是如何工作的,因此您必须进一步了解其功能。最后,我不倾向于使用dominoDocument事件,但关键是理解这些事件何时运行

    beforePageLoad事件仅在页面最初加载到内存时运行一次。在此之后,它将永远不会在部分刷新的情况下再次运行

    您已经将print语句添加到文档事件中,但这并不能告诉您它们何时相对于XPages/JSF生命周期运行。这将是您需要了解为什么它不起作用以及您尝试构建的内容是否可行的关键信息。XPage事件(beforePageLoadafterPageLoad等)中的PhaseListener和print语句将为您提供该信息。你可以在TLCC网络研讨会http://www.tlcc.com/admin/tlccsite.nsf/pages/recorded-xpages-webinars的“2016年网络研讨会”部分的网络研讨会“Marty,你没有从第四维度思考”中找到更多信息。还有幻灯片和演示