Xpages在extlib对话框中获取组件值
我在extlib对话框的面板中定义了一个文档数据源(称为document1)。在此面板中,它包含对话框内容和对话框按钮栏。在对话框内容中,中包含一个自定义控件,该控件包含所有组件,如dojo编辑框、列表框、单选按钮等等。在对话框按钮栏中,它包含一个保存按钮。保存时,我无法通过以下getComponent document.getDocument.getxxx从任何组件获取值:Xpages在extlib对话框中获取组件值,xpages,xpages-ssjs,xpages-extlib,Xpages,Xpages Ssjs,Xpages Extlib,我在extlib对话框的面板中定义了一个文档数据源(称为document1)。在此面板中,它包含对话框内容和对话框按钮栏。在对话框内容中,中包含一个自定义控件,该控件包含所有组件,如dojo编辑框、列表框、单选按钮等等。在对话框按钮栏中,它包含一个保存按钮。保存时,我无法通过以下getComponent document.getDocument.getxxx从任何组件获取值: print (getComponent.getValue("control")); print (document1
print (getComponent.getValue("control"));
print (document1.getDocument(true).getValueInString("control"));
print (document1.getValue("control"));
有趣的是知道document1.sertValue(“control”,newvalue)和document1.getDocument(true).isNewNote()都在工作
对话框将从“重复”对话框中的“视图”列打开。所有数据都会正确显示在对话框中。我可以保存修改后的数据,检索并显示它们,没有任何问题。唯一一件事是我无法得到它们的值进行处理
保存事件处理程序是完全更新,并为面板设置部分执行模式
面板为忽略其参数并将作用域设置为请求,但没有运气
非常感谢你的帮助。提前感谢。
有很多事情需要考虑和/或检查:
- 确保你真正掌握了控制权。由于它位于自定义控件中,因此可以轻松地拥有多个控件。在这种情况下,您要么需要自己的函数
getComponentChild(parentName,controlName),要么(IMHO更好)从customControl的compositeData(这是一个映射)中读取它
- 绑定控件时,与其使用
,不如遵循其绑定。因此,当您绑定到getValue()
时,查找该值(或者document.subject
,如果您将其绑定到viewScope)viewScope.someValue
- 如果提交过程中验证失败,或者您在早期阶段进行查询,则不能使用
,但需要使用getSubmittedValue(),因为它包含验证发生之前的原始值getValue()
让我们知道它是如何运行的:
有很多事情需要考虑和/或检查:- 确保你真正掌握了控制权。由于它位于自定义控件中,因此可以轻松地拥有多个控件。在这种情况下,您要么需要自己的函数
getComponentChild(parentName,controlName),要么(IMHO更好)从customControl的compositeData(这是一个映射)中读取它
- 绑定控件时,与其使用
,不如遵循其绑定。因此,当您绑定到getValue()
时,查找该值(或者document.subject
,如果您将其绑定到viewScope)viewScope.someValue
- 如果提交过程中验证失败,或者您在早期阶段进行查询,则不能使用
,但需要使用getSubmittedValue(),因为它包含验证发生之前的原始值getValue()
让我们知道它是如何运行的实际上document1.getDocument().getXXX(“项目名称”)和document1.getValue(“项目名称”)它们的参数应该是项目名称,而不是contorl id!!!它们是可行的:-)。然而,getComponent.getValue(“control”)。不应该“print”(getComponent.getValue(“control”));“be”应该“print”(getComponent(“control”).getValue();”而不是“print”(getComponent(“control”).getValue();“啊,你说得对,Frantisek。这是getComponent(“control”).getValue():-)对不起,我弄错了。我确实做了getComponent('controlId').getValue()并重试,但仍然没有成功。不知道这是因为extlib对话框中的控件。我刚刚发现getComponent('controlId').getValue()不适用于extlib控件,实际上是document1.getDocument().getXXX('item name')和document1.getValue(“item name of the item”),它们的参数应该是item的名称,而不是contorl id!!!它们是可行的:-)。然而,getComponent.getValue(“control”)。不应该“print”(getComponent.getValue(“control”));“be”应该“print”(getComponent(“control”).getValue();”而不是“print”(getComponent(“control”).getValue();“啊,你说得对,Frantisek。这是getComponent(“control”).getValue():-)对不起,我弄错了。我确实做了getComponent('controlId').getValue()并重试,但仍然没有成功。不知道这是因为extlib对话框中的控件。我刚刚发现getComponent('controlId')。getValue()不适用于extlib控件,也就是说