我已经使用primefaces的datagrid实现了拖放。它运作良好。 然后我想获得可拖动对象的位置: 我把它包含在我的handleDrop jquery函数中,这样:
function handleDrop(event, ui) {
var droppedQuery = ui.draggable;
var p = ui.offset;
var myvalue = "thisvalue" + p.left;
$("#form1\\:position").val(myvalue); }
<p:inputText id="position" value="#{dragQueryMB.changevalue}" />
问题是每次拖动obrject时都会显示和更新文本,但dragQueryMB ManagedBean中changevalue的值是alawys为null。
谢谢,我在这里进一步解释
答案 0 :(得分:0)
我发现了什么问题。
实际上,在drop事件上调用了handleDrop。
myvalue的值传递给inputText,更改everyTime我调用handleDrop函数,但所有这些都是客户端。
所以我不得不让事件调用handleDrop函数处理一个请求,以便支持bean响应并且它的属性是最新的。所以我在这里添加了process =“:form1”到与droppable元素相关联的ajax行为
<p:droppable for="report" tolerance="touch" activeStyleClass="ui-state-highlight"
datasource="availablequeries" onDrop="handleDrop" dropListener="#{dragQueryMB.dropQuery()}" >
<p:ajax listener="#{dragQueryMB.dropQuery}" update="dropArea" process=":form1"/>
</p:droppable>
我希望我足够清楚