当行包含h:commandLink时,Rich:DataTable排序中断



我有一个带有排序的rich:dataTable。表中的每一行都有一个指向另一页的h:commandlink。这在所有非webkit浏览器中都可以正常工作。

单击标题进行排序时,表格的内容将被清除,Chrome JavaScript控制台中将显示以下错误:

Uncaught Error: NOT_SUPPORTED_ERR: DOM Exception 9

这似乎是一个已知的问题(https://issues.jboss.org/browse/RF-6096)但是没有任何解决方案。

我发现使用:

<a4j:commandLink ... />

而不是

<h:commandlink .../>

解决表排序的所有问题。

(我无法登录JBoss问题跟踪器来添加此评论,所以如果您有访问权限,并且这对您有效,请添加评论。)

这似乎是document.importNode的webkit实现的一个问题。为了避免这个问题,你可以在你的模板文件上使用这段javascript代码:

if( /webkit/.test( navigator.userAgent.toLowerCase() ) ){
    var _importNode = window.document.importNode;
    window.document.importNode = function(node, deep){
        try{
            return _importNode.apply(this, arguments);
        } catch(e) {
            if( e.code == DOMException.NOT_SUPPORTED_ERR ){
                // clone and adopt
                return document.adoptNode(node.cloneNode(deep));
            }
            throw e;
        }
    };
}

最新更新