我有一个用 Oracle ADF 编写的应用程序。
在其中,我有一个表,我需要通过该表添加一个映射回 VARCHAR 列的复选框列。
我在我的视图对象中创建了一个临时布尔属性,它正确设置了真实属性。此设置在我的业务组件测试器/浏览器中完美运行。但是,在我的 JSPX 中,根据瞬态属性获取复选框的表列不会获取或设置数据。
此设置完全按照此博客中所示完成:在 Oracle ADF 中将布尔复选框添加到表组件。例如,我的真实属性(即 varchar/string)称为 isCurrent。我创建了名为 isCurrentBoolean(布尔数据类型)的瞬态列,该列分别设置了 checkbox 属性。我使用 Row Implementation 类正确设置了这两个属性 - 这在 ADF 业务组件测试器/浏览器中完美运行。
但是,在我在 JSPX 页面上的表格中,启用了复选框的记录没有显示为选中状态。当我尝试设置数据时,我的提交过程没有运行期间(没有错误,它实际上没有运行)。
有任何想法吗?
谢谢!
更新01:
我的瞬态布尔属性根据字符串/varchar 属性正确获取数据,现在它只是设置数据部分不起作用。
在行实现类中,我添加了一条消息以在每次设置器为 IsCurrentBoolean 运行时触发。选中复选框时不会触发。我已将自动提交设置为 true。我会看看我是否还能做任何其他事情,但我可能只是在我的应用程序模块中添加一个方法,并让它在复选框的值更改侦听器中触发 - 作为一种解决方法。
JSPX 代码:
<af:column sortProperty="IsCurrentBoolean" sortable="false"
headerText="Current?" id="c2" width="50">
<af:selectBooleanCheckbox value="#{row.IsCurrentBoolean}" id="sbc1"
autoSubmit="true" />
行 Impl 代码:这是我的瞬态属性设置器(设置真实属性):
if (value) {
this.setProvPracIsCurrent("Y");
setAttributeInternal(ISCURRENTBOOLEAN, value);
} else {
this.setProvPracIsCurrent("N");
setAttributeInternal(ISCURRENTBOOLEAN, value);
}