2016-04-27 67 views
0

我们可以添加ID结尾的选择表达式,如RequestContext.getCurrentInstance().update("@([id$=myId])"); ,它将更新所有以id'myId'结尾的DOM组件。我不想在xhtml中提到这个表达式。附加的图片显示了生成的ID。 DOM structure with generated IDs。如果我提到ID为form:myTableLocalId:4:myId 那么它只更新单个组件。我想更新所有以ID结尾的组件所有组件'myId'有没有办法在RequestContext.getCurrentInstance()。update(“anyExpression”)中添加表达式?

+0

_“我不想在xhtml中提到这个表达式。”_为什么不呢?这些id是否在数据表中?所有在同一列我假设? – Kukeltje

+0

是否http://stackoverflow.com/questions/27107993/how-do-update-jsf-datatable-column-only帮助? – Kukeltje

+0

@Kukeltje感谢您的回复。 _“我不想在xhtml中提到这个表达式”,因为我必须根据运行时的某些条件决定是否更新这些id。是否有条款更新ID的条件? – nikhilniksuri

回答

1

您正在寻找的是期望jsf识别所有dom元素并更新以某些特定名称结尾的元素不幸的是,JSF不提供这样的包含逻辑的设施类型因此您需要编写逻辑来查找DOM元素的所有元素ID,然后传递该ID并且JSF将更新它们。 你可以调用一个Javascript函数,然后在Javascript中,你可以找到所有以你的匹配id结尾的id,然后更新它们,因为现在你有了ID,你可以轻松地做到这一点。

+0

更新:根据你生成的HTML,如果你要更新'form:myTableLocalId',你的问题应该被解决,它会更新'myTableLocalId'内存在的所有元素,即它会更新整个表,我想这就是你正在寻找的东西对于。 – techipank

+0

如果您有1000行和20列,请不要使用。更新20.000组件和它们的包装器(数据表)不仅仅是更新1000个组件 – Kukeltje

+0

Jsf没有这个,但是对于数据表OmniFaces来救援(假设具有相同id的组件在同一列中)http:// stackoverflow .COM /问题/ 27107993 /如何-DO-更新JSF的数据表列,只 – Kukeltje

相关问题