2014-01-23 48 views
1

我試圖在jQuery頁面中用jquery-jtable顯示查詢的查詢結果。我的頁面上有一個表單(用於搜索參數),並且由於我想使用jtable分頁和排序,我試圖找到一種方法將listAction傳遞給搜索參數。據我瞭解,我應該使用load()方法,如將它們作爲一個數組:顯示jquery中的搜索jtable的數據jtable

$('#SearchResultTable').jtable('load', {parms: lolz, daje: 2}); 

問題是他們從來沒有到的listAction的servlet。我的JTable的配置是這樣的:

$(document).ready(function() { 
$('#SearchResultTable').jtable(
      { 
       paging: true, 
       pageSize: '20', 
       actions: { 
        listAction: 'CRUDController?action=list' 
       }, 
     ... 
    }); 
); 

我有這樣的形式:

<div id="searchmask"> 
    <form method="post"> 
     <table> 
... 
      <td class="normal"> 
        <input onkeypress="checkAlphaNum()" onkeyup="checkform()" name="sCodAzi" id="sCodAzi" size="12" /></td> 
        <input onkeypress="checkAlphaNum()" onkeyup="checkform()" name="sNrOrdine" id="sNrOrdine" size="12" /></td> 
... 
<input class="flat" disabled type="submit" id="submitter" value="Search" 
      onClick="$('#SearchResultTable').jtable('load', 
          {sCodAzi: document.getElementById('sCodAzi').value, 
           sNrOrdine: document.getElementById('sNrOrdine').value} 
        );"> 
    </form> 
</div> 

<div id="SearchResultTable"></div> 

搜索的servlet正確映射到/ CRUDController

的問題是:的listAction永遠不會被調用。它應該在提交按鈕被按下時調用,但不是。可以一些JavaScript專家(我相當有限的JavaScript)幫助我瞭解我錯在哪裏?

謝謝。

回答

1

僅在您的頁面加載時才調用動作listAction: 'CRUDController?action=list'。 如果你想在按鈕點擊時調用這個動作,你需要在按鈕點擊事件內部寫入。與此類似,

<input class="flat" disabled type="submit" id="submitter" value="Search" 
     onClick="searchRecords();"> 

而且在你的JavaScript,

function searchRecords(){ 
    $('#SearchResultTable').jtable(
     { 
      paging: true, 
      pageSize: '20', 
      actions: { 
       listAction: 'CRUDController?action=list' 
      }, 
     } 
     ... 
    ); 
} 

這僅僅是一個客戶端的修正。您需要發佈您的CRUDController來驗證您的服務器端代碼。