一个奇怪的问题,如果可能的话,我不想放弃代码,所以我会尽力解释发生了什么。
基本上,我有一个执行AJAX操作的commandButton,然后更新它所在的整个表单。
此表格的作用如下:
<h:form id="tabform">
.....
<p:commandButton update=":tabform" value="Save" ajax="true" onstart="savingDialog.show();" onsuccess="savingDialog.hide();" actionListener="#{bean.saveContent}" /> <!-- styling makes it fixed position -->
.....
<p:editor id="ed1" />
<p:editor id="ed2" />
<p:editor id="ed3" />
<p:editor id="ed4" />
<p:editor id="ed5" />
<p:editor id="ed6" />
</h:form>
当我点击保存按钮,我就像编辑器5一样,它将保存然后将我放在编辑器2的中间。不是焦点,而是&#34;浏览器视图的焦点&#34; (如果这是有道理的)。
我可以确认它与commandButton上的更新有关。在更新后,它似乎把我放在了tabform中间的一半。
有没有办法解决这个问题?
答案 0 :(得分:2)
在RequestContext
上使用scrollTo
方法在任何服务器端操作后滚动到特定组件。显然,这需要您设计一个方案,以便事先知道要将页面调整到的组件。如果没有您的有意义的代码,您可以从以下开始:
public void saveContent(){
//your implementation here
RequestContext context = RequestContext.getCurrentInstance();
context.scrollTo("tabForm:ed5")
}