我在页面上有一个按钮,可以通过AJAX请求刷新我的数据表.像这样的东西:
<h:form id="datatable">
<p:dataTable/>
</h:form>
<p:commandButton update=":datatable">
Run Code Online (Sandbox Code Playgroud)
这一切都很好,但是当表刷新时,它会恢复到不排序任何东西,同时仍然显示它是基于前一个值进行排序.换句话说,标题仍然突出显示,箭头仍指向排序方向,但实际上没有执行排序.显然这并不理想.
理想情况下,我希望组件在视图状态中保持其排序顺序,然后在AJAX请求期间提交适当的参数(以便正确定义排序).我错过了一个参数或什么?还有其他人有这个问题吗?
从表格预期排序时我可以看出它发布了以下选项:
<componentID>_sortDir
<componentID>_sortKey
<componentID>_sorting
<componentID>_updateBody
Run Code Online (Sandbox Code Playgroud)
当我刷新表单时,这不会发生.如果我只刷新表格也不会发生这种情况(我想通过直接更新组件可以解决问题).有没有办法让表格正确刷新?
基本上,我正在尝试实现一个与Google Reader界面中内置的阅读窗格类似的系统.
如果您还没有看到它,Google阅读器会在单独的框中显示每篇文章,当您滚动它时会突出显示当前框(并将文章标记为已读).除此之外,您还可以通过单击UI中的上一个和下一个按钮在文章列表中向前或向后移动.
我基本上已经弄明白了如何完成大部分功能.但是,我不确定如何确定可滚动窗格中当前可见的div中的哪些div.
我有一个设置为溢出的div:auto.在这个div的内部,还有其他div,每个div都包含一段内容.我使用了以下jquery插件,只需单击"下一个"或"上一个"按钮即可进行所有滚动,它就像一个魅力:
http://demos.flesler.com/jquery/serialScroll/
但我无法分辨哪个div在可滚动窗格中具有"焦点".我希望能够做到这一点有两个原因.
我想突出显示用户当前正在阅读的项目(类似于Google阅读器).我需要这样做,无论他们是否使用插件到达那里或使用浏览器的滚动条.
我需要能够告诉插件哪个项目具有焦点,以便我滚动到"下一个"窗格的调用实际上使用当前查看的窗格(而不仅仅是插件滚动的前一个窗格).
我试过做一些搜索,但我似乎无法找到一种方法来做到这一点.我找到了很多方法来滚动到一个特定的项目,但我找不到一种方法来确定哪个元素在溢出的div中可见.如果我可以确定哪些项目是可见的,我可以(可能)弄清楚剩下的.
如果有帮助的话,我正在使用jquery.谢谢!
我有一个关于面部导航的问题.
所以我有一个页面,它接受一个请求参数来加载特定用户.此页面显示commandLink列表,单击该列表时,使用隐式导航重定向到另一个页面.通过调用"preRenderView"中的方法来加载用户.
我们重定向到的页面还会获取一个请求参数来确定要加载的大小写.该页面还使用了preRenderView.
两个页面都有视图作用域的bean.
对于按下的FIRST链接,这一切都很棒.第一页重定向到新URL,案例按预期加载.
但是,如果我单击浏览器的后退按钮然后单击另一个链接页面不会重定向.它刷新(相反),显然不会购买案例.
刷新后,我可以单击一个链接,它将正确重定向.
现在,当第一页的bean保留在会话中时,所有这些都完全正常,但我不想滥用会话状态,我认为不应该将这些数据保存在会话中.
我知道我可以通过在单击后退按钮时自动重新加载页面来修复此问题(因为视图将被重新创建),但我不确定这是否也是正确的解决方案.(我也不确定如何强迫这个)
有没有人有什么建议?这似乎是一个相当常见的用例,但我真的找不到任何例子.
谢谢!
jsf-2 ×2
ajax ×1
datatable ×1
html ×1
html-parsing ×1
javascript ×1
jquery ×1
jsf ×1
primefaces ×1
redirect ×1
sorting ×1