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

时间:2020-08-11 16:18:03

标签: icefaces 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标记。

我该怎么办?

谢谢!

1 个答案:

答案 0 :(得分:0)

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

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标记。

相关问题