Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf 2 <;p:ajax>;监听器永远不会被调用_Jsf 2_Primefaces - Fatal编程技术网

Jsf 2 <;p:ajax>;监听器永远不会被调用

Jsf 2 <;p:ajax>;监听器永远不会被调用,jsf-2,primefaces,Jsf 2,Primefaces,我是个新面孔。我正在从primefaces2.2迁移到primefaces3.1.1,因为我必须在应用程序中包含primefaces3.1.1的新功能 应用程序中有dragndrop功能。primefaces2.2可以正常工作,但当我根据primefaces3.1.1的规范进行更改时。dragndrop功能不工作 实际上情况是这样的 我有一个数据表,从数据库中获取值并显示。有一棵树 datatable行将被拖放到treetable区域。在这样做的时候,我写了一个监听器,但是它从来没有被调用过 这

我是个新面孔。我正在从primefaces2.2迁移到primefaces3.1.1,因为我必须在应用程序中包含primefaces3.1.1的新功能

应用程序中有dragndrop功能。primefaces2.2可以正常工作,但当我根据primefaces3.1.1的规范进行更改时。dragndrop功能不工作

实际上情况是这样的

我有一个数据表,从数据库中获取值并显示。有一棵树

datatable行将被拖放到treetable区域。在这样做的时候,我写了一个监听器,但是它从来没有被调用过

这里我提供代码

workflow.xhtml

 <p:fieldset  id="workflowtabs" legend="Drop here" rendered="#{workflowStep2Bean.childCount gt 0}">
   <p:outputPanel id="dropArea">
<p:treeTable id="testtable" value="#{workflowStep2Bean.root}"  var="selected" rendered="#{not empty workflowStep2Bean.root}" >
                                                            <p:column rendered="#{selected.type eq 'Folder'}">
                                                                <p:commandButton icon="ui-icon ui-icon-folder-open" disabled="true"/>
                                                            </p:column>                                                                
                                                            <p:column rendered="#{selected.type eq 'Folder'}" >
                                                                <h:inputText value="#{selected.name}" />                                                                        
                                                            </p:column>                                                                  
                                                        </p:treeTable>
                                                    </p:outputPanel>      
                                                </p:fieldset>  
<p:fieldset  id="testfields" legend="#{msg.tests}" rendered="#{workflowStep2Bean.childCount gt 0}">
                                                    <p:dataTable id="teststable" value="#{workflowStep2Bean.tests}" var="testList"  >
                                                        <p:column style="height: 20px" headerText="Drag">
                                                            <h:outputText id="dragIcon" styleClass="ui-icon ui-icon-arrow-4"/>
                                                            <p:draggable for="dragIcon" revert="true" scope="#{dragIcon.position}" stack=".ui-icon ui-icon-arrow-4"/>                                                                
                                                        </p:column>                                                           
                                                        <p:column headerText="Name">
                                                            <h:outputText value="#{testList.name}"></h:outputText>
                                                        </p:column>                                                                            
                                                    </p:dataTable>                                                                                                                                                   
                                                </p:fieldset>
<p:droppable for="workflowtabs" tolerance="touch" activeStyleClass="ui-state-highlight" datasource="teststable" onDrop="handleDrop">  
                                            <p:ajax  listener="#{workflowStep2Bean.onTestDrop}" update="dropArea teststable" />  
                                    </p:droppable>  
请告诉我哪里做错了。提前感谢


我使用的是primefaces 3.1.1、Mojorra 2.1.3、Glassfish 3.1.1、JSF2.0。我遇到了一个类似的问题,我通过以下方式解决了这个问题:

onDrop=”“
参数和
命令同时插入,这样做不起作用

按照中给出的解释,我首先删除了我的

<p:droppable for="PD" accept=".#{item.classeInverse}" onDrop="handelDrop()" />
然后您应该能够修改上面的
on(“drop”…
函数,使用
命令进行ajax调用


希望这能有所帮助。

我不确定这是否是drop功能不起作用的原因,但在PrimeFaces的第3版中,您现在必须指定
p:dataTable
rowKey
属性,以便正确更新行选择。此
rowKey
表示唯一标识bean的bean属性在
value
集合中。不幸的是,showcase忽略了显示这一点,希望Primefaces团队将很快更新它。您可以在Primefaces手册中获得有关这一点的更多信息。感谢您的评论。请将Primefaces手册的链接以及我可以看到指定行键的链接发送给我在datatable示例中,您可以在此处下载它。。。
<p:droppable for="PD" accept=".#{item.classeInverse}" onDrop="handelDrop()" />
jQuery(window).load(function(){

    $(".ui-droppable").on("dragover", function() {
        event.preventDefault();
        event.stopPropagation();
        $(this).addClass('dragging');
    });

    $(".ui-droppable").on("dragleave", function() {
        event.preventDefault();
        event.stopPropagation();
        $(this).removeClass('dragging');
    });

    $(".ui-droppable").on("drop", function(event) {
        event.preventDefault();
        event.stopPropagation();
        console.log("Dropped!");
    });

});