编程语言
首页 > 编程语言> > 从Javascript访问Richfaces树的选定节点

从Javascript访问Richfaces树的选定节点

作者:互联网

这应该是一个非常简单的问题.我有一棵使用JSF渲染的richfaces树.当用户单击节点时,我希望运行javascript函数.一无所有没有重定向,没有重新提交,没有渲染,没有Ajax.只是普通的旧Javascript.

我已经看到了树的onselected属性,它确实触发了Javascript方法.但是,我当然想知道单击了哪个节点.

这是我到目前为止的

<head>
<script type="text/javascript">
function documentClicked(nodeRef)
{
    alert("Node is "+nodeRef);
}

</script>
</head>


    <rich:tree switchType="client" value="#{ajaxDocumentTree.rootNode}"  
        var="document" onselected="documentClicked()" >



        <rich:treeNode   iconLeaf="../images/tree/doc.gif"
            icon="../images/tree/doc.gif">

            <h:outputText value="#{document.friendlyName}" />

        </rich:treeNode>

但这不起作用,因为未定义nodeRef.我希望回调的第一个参数是选定的节点,但事实并非如此.

所以问题是这样的:

如何使用Richfaces树中的选定节点触发Javascript函数?

解决方法:

答案是javascript代码应该在节点级别而不是树级别.

<head>
<script type="text/javascript">
function documentClicked(nodeRef)
{
    alert("Node id is "+nodeRef);
}

</script>
</head>


    <rich:tree switchType="client" value="#{ajaxDocumentTree.rootNode}"  
        var="document" >

        <rich:treeNode onclick="documentClicked('#{document.id}')">

            <h:outputText value="#{document.friendlyName}" />

        </rich:treeNode>

标签:richfaces,jsf,tree,javascript,java
来源: https://codeday.me/bug/20191106/1999861.html