我有一个关于p:commandLink的问题
这是链接代码
<p:commandLink partialsubmit="true" id="c2aLink" immediate="true" ajax="true" update="generalPanel" action="#{tabularbean.refresh}"/>
问题是,当点击这个链接时,它会重新加载页面,而不仅仅是更新面板。
我只想更新面板而不是重新加载整个页面
注意:我使用javascript代码单击此链接。
javascript代码:
render: function(options) { var c2aLink = this.findElementWithIdLike(iframe.contentWindow,'c2aLink'); c2aLink.click();},
findElementWithIdLike :function(wind,prefix) {
return this.findChildWithIdLike2(wind.document.body, prefix);
},
findChildWithIdLike2 :function(node, prefix) {
if (node && node.id && node.id.indexOf(prefix) >= 0) {
//match found
return node;
}
//no match, check child nodes
for (var index = 0; index < node.childNodes.length; index++) {
var child = node.childNodes[index];
var childResult = this.findChildWithIdLike2(child, prefix);
if (childResult) {
return childResult;
}
}
},`发布于 2013-05-28 19:29:04
您需要调用元素的onclick属性处理程序,而不是click()方法。
替换
c2aLink.click();通过
c2aLink.onclick();在onclick属性中定义了PrimeFaces ajax内容。
请注意,这一切都与JSF/PrimeFaces无关。在使用JSF/PrimeFaces生成的相同HTML代码时,您也会遇到完全相同的问题。将来,如果您尝试使用“普通”HTML,以便锁定/重现问题,而不是JSF/PrimeFaces,将会更有帮助。如果你在HTML/JavaScript上下文中提问,你也会有更好的机会更快地得到答案。
发布于 2014-06-27 21:19:09
只有在提交表单/表单的一部分时,partialSubmit才会起作用。您可以使用oncomplete="submit()"**;**,这是在ajax请求完成时执行的客户端回调。
使用:
process="@this" update="generalPanel"如果您想要更新表单,请使用:
update="@form"在这种情况下,绝对不需要javaScript代码。像primefaces这样的API是内置的。
https://stackoverflow.com/questions/16775742
复制相似问题