【问题标题】:adf declarative component custom methods queueEvent() not workingadf 声明性组件自定义方法 queueEvent() 不起作用
【发布时间】:2015-05-07 13:36:10
【问题描述】:

我正在使用 Oracle ADF JDev 12.1.3

我有一个自定义的声明性 LOV 组件和一个自定义方法“valueChangeEvent”, 用户从弹出窗口中选择一些值后,我将进行一些验证,如果所有验证都正常,那么我需要引发“valueChangeEvent”事件, 这样在最终的 jspx 页面中可以实现额外的逻辑,

我的声明式组​​件方法定义如下

           <method-attribute>
                <attribute-name>
                    valueChangeListener
                </attribute-name>
                <method-signature>
                    java.lang.Void method(javax.faces.event.ValueChangeEvent)
                </method-signature>
                <required>
                    false
                </required>
            </method-attribute>

在我的自定义 LOV 组件中,我有一个输入文本和按钮,我尝试了以下方法在命令按钮操作中调用我的自定义方法,但它没有在主窗体调用事件,但没有显示错误

// get the component reference using Face Context ValueExpression 
_this = getThisDeclarativeCompoent();
//try to queue the valueChangeEvent - but this does not work
_this.queueEvent(new ValueChangeEvent(_this, NewValue, OldValue));

消费应用代码如下

<af:declarativeComponent viewId="/ASGLOVBrowser.jspx" id="dc3" label="Modules" LOV_Name="MODULE"
                                     bindingAttribute="#{bindings.ModuleId}" showDescription="true"
                                     multiSelect="false" matchingField="CODE"
                                     valueChangeListener="#{viewScope.DeclarativeTestBean.test_valueChangeEvent}"/>

如果有人可以提供帮助,请不胜感激......

【问题讨论】:

  • 您在上面列出的这段代码,它到底在哪里?我在这里很难理解你的问题。
  • 感谢 florin 对此进行调查,在我的自定义 LOV 组件中,我有一个输入文本和按钮,我尝试使用这些代码在命令按钮操作中调用我的自定义方法...修改了我的问题为了更清楚......

标签: oracle-adf jdeveloper


【解决方案1】:

Value Change 事件仅由框架引发,当输入值更改时,因此您无法在不从 UI 或以编程方式更改值的情况下启动事件。

因此,您可以获取输入文本 UIComponent 的引用并以编程方式更改值:

RichInputText uiComp = <<<get reference>>>;
uiComp.setValue(newValue);

【讨论】:

  • 感谢 Florin 的建议,但我的要求是在完成一些短处理后将一些事件从声明性组件发送到消费页面。暂时我设法在声明性组件中使用了一个动作事件方法,并带有一个隐藏的按钮,然后按钮绑定已用于使用'queueEvent'调用此动作。
猜你喜欢
  • 1970-01-01
  • 2012-08-24
  • 1970-01-01
  • 1970-01-01
  • 2021-10-29
  • 1970-01-01
  • 2020-04-09
  • 2014-02-06
  • 1970-01-01
相关资源
最近更新 更多