2012-11-09 72 views
0

我有一個小腳本拖動&刪除一個表,它的工作正常。但我有一個問題:我必須將start/endPosition傳遞給我的BackingBean。有沒有辦法從jquery(帶參數)調用BackingBean函數?或者你知道一些很好的解決方法嗎?jquery DragDrop調用BackingBean功能

代碼拖&下降:

<script type="text/javascript" language="javascript"> 
$(document).ready(function() { 
    var startPosition; 
    var endPosition; 
    $('#table tbody').sortable({ 
    cursor: "move", 
    start:function(event, ui){ 
     startPosition = ui.item.prevAll().length; 
    }, 
    update: function(event, ui) { 
     endPosition = ui.item.prevAll().length; 

     // Call BackingBean function 

    } 
    }); 
}); 
</script> 

回答

0

BackingBean是服務器端,你可以做的是做一個JavaScript函數的調用你backingbean代碼,當然,改變你的函數返回二者開始和結束位置。

+0

這究竟是如何工作的?你有這樣的代碼示例嗎? –

+0

http://stackoverflow.com/questions/3061775/how-to-call-javascript-from-backingbean-jsf –

+0

我認爲BalusC的代碼在這裏真的很有用(http://balusc.blogspot.co.at/2009/ 05/javajspjsf和 - javascript.html#PassVariablesFromClientSideToServerSide)。我會試一試。 –

0

你可以在你的XHTML頁面兩個隱藏輸入字段,如

<h:inputHidden id="input1" value="#{bean.startPosition}" /> // getters and setters for startPosition in your bean 
    <h:inputHidden id="input2" value="#{bean.endPosition}" /> 

,並設置它,您將可以從獲得上述jQuery腳本到這些領域

document.getElementById('form:input1').value=startPosition; 
    document.getElementById('form:input2').value=endPosition; 

的價值觀,並讓他們在它應該做你的工作。

+0

感謝您的回答,我已經用BalusC的代碼(http://balusc.blogspot.co.at/2009/05/javajspjsf-and-javascript.html#PassVariablesFromClientSideToServerSide)做到了這一點。我做了一個新的表單,我隱藏在我的jQuery代碼中($('form')。hide())。 –