微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

icefaces 1.8.2:根据selectOnemenu更新具有许多selectOnemenu的表

如何解决icefaces 1.8.2:根据selectOnemenu更新具有许多selectOnemenu的表

我有一个ice:selectOneMenu,上面列出了汽车列表。我需要在选择汽车时更新带有许多selectOneMenu的可选表,并自动选择认值。

所以:

Cars: <select>

Optionals Table
-----------------------
Colors: <select>
Engines: <select>
Seats: <select>
Interior Color: <select>
...
...

问题是我更改了Cars值,但表未更新且未选择其值

所以我想要:

  • 如果我选择了法拉利汽车,请在可选表格中:自动选择红色,自动选择3902CC发动机,等等。

  • 如果我选择了保时捷汽车,则会自动选择白色,自动选择616/16引擎,等等。

我正在使用icefaces 1.8.2,可能无法使用ajax标记

我该怎么办?

谢谢!

解决方法

我找到了一种解决方法。使用:

JavascriptContext.addJavascriptCall(FacesContext.getCurrentInstance(),javascriptCodeString);

将Javascript代码添加到页面。

字符串javascriptCodeString必须包含一个Javascript代码,该代码使用CSS类将click事件绑定到隐藏的,该事件将调用一个操作(用于更新字段值):>

function updateFields() {
  document.getElementsByClassName('updateFieldsCommandButton')[0].click();
}
var listOfFields=document.getElementsByClassName('fieldToBeUpdated');
for(var i=0,len=listOfFields.length;i<len;i++) {
   listOfFields[i].addEventListener('change',updateFields);
}

这可用于icefaces 1.8.2,而无需ajax标记。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。