一旦从列表框中选出一项,我将提交一页如下:
onchange="submit()"
选择完成后,页面立即滚动到页面的顶部,其中包含依赖于所选内容的新信息。
在jsf中有什么方法可以避免滚动发生吗?
向爱德蒙问好
发布于 2015-09-18 09:57:45
这并不是JSF特有的。这是HTML特有的。当您让JSF在生成的HTML /select元素上生成一个onchange="submit()"
属性时,基本上是指示HTML /select元素调用父HTML<form>
元素的submit
函数。这将触发一个完全同步的请求,这将导致整个页面重新加载。默认行为是显示页面的顶部,就像通过普通链接打开页面或执行刷新一样。
如果您想执行异步提交,只需添加一些ajax即可。JSF2.x通过<f:ajax>
标记提供了内置的ajax支持。
所以,而不是
<h:selectOneMenu ... onchange="submit()">
...
</h:selectOneMenu>
做
<h:selectOneMenu ...>
...
<f:ajax />
</h:selectOneMenu>
如果您打算在同一视图中的其他地方更新特定组件,请在render
属性中指定其绝对或相对客户端ID。
<h:selectOneMenu ...>
...
<f:ajax render="results" />
</h:selectOneMenu>
<h:panelGroup id="results">
...
</h:panelGroup>
另请参阅:
https://stackoverflow.com/questions/32648792
复制相似问题