Primefaces仅更新选定的选项卡
我有一种情况,我想在触发“选择”事件时更新页面上的多个组件。 但是 ,其中两个位置位于tabView中,我只想更新这些组件,如果它们位于当前选定的选项卡中。 我怀疑我正在寻找的是这样的……
<p:ajax event="select" update="@( .ui-tabs-selected)" listener="#{treeSelectionView.onNodeSelect}" />
但我不确定。
我尝试的另一种策略是使tabView dynamic =“true”,但是当我从p:ajax标签调用更新时,即使未选中选项卡,它也会拉取数据。 🙁
我是Primefaces的新手,并且喜欢到目前为止我所见过的东西。 这似乎不应该太难,但我不知何故错过了这个标记。 此外,我很难找到有助于我的文档或示例。 希望我只是在错误的地方寻找。 🙂
提前致谢。
简而言之, @(...)
语法转换为jQuery选择器,该选择器应返回具有具体id
属性的JSF生成的HTML元素。 更长的解释可以在这个问题的答案中找到: PrimeFaces Selectors如何在update =“@(。myClass)”中工作?
您接近.ui-tabs-selected
,但是它只指向选项卡本身(tabview顶部的那些标签),而不是选项卡面板(所选选项卡的实际内容),它们具有.ui-tabs-panel
。 正确的jQuery选择器是这样的,利用:visible
pseudoselector :
update="@(.ui-tabs-panel:visible)"
但是,我在这里试了一下,它在当前的PF5版本中有一个渲染错误。 整个
本身被替换为唯一的标签内容,而不是仅替换其内容。 当我将标签的内容包装在另一个
它有一个共同的样式类,如下所示:
... ... ...
然后可以引用如下:
update="@(.ui-tabs-panel:visible .tab-content)"
请注意,由于第一段中提到的原因,您确实需要为那些
sa提供固定id
。
- 像.load()这样的Ajax函数会从HTML中删除注释。 我该如何保留评论?
- 如何从一个canvas复制到其他canvas
- 为什么IE使用鼠标hover处理程序为服务器端元素添加jQuery属性?
- Google Maps WebService API – 在地图上显示路线结果
- 如何通过jquery创建弹出窗口到外部页面,当我点击那里的按钮时,从它获取一个值到父页面?
- 带有TinyMCE和XML编码的ASP.Net 4.0在Postback上重新编码内容
- 在使用ajax分页加载页面后重新初始化其他javascript函数
- 用于构建类似桌面的Web应用程序的Javascript库:ExtJS,jQuery,YahooUI,Mocha,SproutCore,Cappuccino,其他?
- 如何个性化警报按钮 – window.confirm()和window.alert()