我的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;
}
}
},`
答案 0 :(得分:0)
您需要调用元素的onclick
属性处理程序,而不是click()
方法。
替换
c2aLink.click();
通过
c2aLink.onclick();
PrimeFaces ajax的内容在onclick
属性中定义。
请注意,这一切都与JSF / PrimeFaces无关。使用与JSF / PrimeFaces生成的相同HTML代码时,您遇到了完全相同的问题。在将来,如果您使用“普通”HTML来解决问题而不是JSF / PrimeFaces会更有帮助。如果您在HTML / JavaScript上下文中提出问题,您也可以更快地获得答案。
答案 1 :(得分:0)
partialSubmit
仅在提交表单的表单/部分时才有效。你可以用
oncomplete="submit()"
; 这是在ajax请求完成时执行的客户端回调。
使用:
process="@this" update="generalPanel"
以防您想要更新表单使用:
update="@form"
在这种情况下绝对不需要javaScript代码。像primefaces这样的API已内置。