在我的JSF 2 Web应用程序中,我使用以下代码根据selectedStatus显示和切换rich:dataTable的内容:
<h:selectOneRadio id="statusSelection" value="#{backingBean.selectedStatus}" style="width:auto; float:left;">
<f:selectItem itemValue="AVAILABLE" itemLabel="Available" />
<f:selectItem itemValue="INACTIVE" itemLabel="Inactive" />
<f:ajax render="itemsDataTable" execute="#{backingBean.sortByTitel('ascending')}" />
<f:ajax render="itemsDataTable" event="click" />
</h:selectOneRadio>
dataTable包含a4j:commandLink,在更改表内容后无意中需要在某些IE版本中双击 - 我发现,执行以下Javascript代码(在IE的调试控制台上,在表内容发生更改后)解决问题:
document.getElementById(<dataTableClientId>).focus()
我的问题是:如何在表格内容发生变化后自动执行javascript代码?
答案 0 :(得分:25)
为了在以下内联解决方案f:ajax
之后调用js代码
<f:ajax render="itemsDataTable"
onevent="function(data) { if (data.status === 'success') {
document.getElementById('dataTableClientId').focus() } }"/>
还要看一下这个答案:JSF and Jquery AJAX - How can I make them work together?
另外,仔细检查event="click"
中f:ajax
的需要,导致h:selectOneRadio
中的默认事件为change
,我认为您最好使用... < / p>