2013-12-08 60 views
0

好吧,我已經在這個問題上相當長一段時間了,並已經徹底研究過它。首先我使用Spring Tool Suite - MVC Project。在.jsp頁面上工作使用javascript函數打印dymanic html表(jQuery數據表插件)

我想找出最佳/正確/有效的方式來動態創建和編輯一個HTML表格,該表格將基於來自MySql數據庫的數據鏈接到dataTables(jQuery插件)表。

我希望用戶能夠根據不同的用戶輸入....按鈕,價格範圍輸入等更新表格。

到目前爲止,我研究過的最好方法是將表的創建封裝在一個js函數中,然後創建其他函數,這些函數將改變表,添加到表,更新表或其他任何我想要執行的操作。我沒有運氣使用函數創建數據表,現在最好的辦法是使用java連接到我的數據庫並創建一個成功加載並顯示數據庫中的數據的SINLGE表,問題是我無法改變表加載頁面後,基於新的SQL查詢對錶進行刷新的每次嘗試都失敗。

Datatables有一個非常大的api,我可以使用它向表中添加一行,但其他似乎很有用的功能,如更新表不起作用。

這讓我想到如果我的方法應該完全重新考慮。我應該採取什麼方法?

如果需要

我會後的代碼預先感謝您

+0

你能提供你的代碼嗎? –

回答

0
<% 
ArrayList<ArrayList<String>> aaList = new ArrayList<ArrayList<String>>(); 
ResultSet rs; 
    Statement statement = null; 
    Class.forName("com.mysql.jdbc.Driver"); 
    Connection conn = DriverManager.getConnection("jdbc:mysql://ics321instance.cglh44ydeyny.us-east-1.rds.amazonaws.com/ics321", "user", "password"); 
    statement = conn.createStatement(); 
    //this query should return all items 
    rs = statement.executeQuery("select * from Product where price < 10;"); 

    int counter=1; 
    ResultSetMetaData metaData = rs.getMetaData(); 
    %> 

    <table id = "example"> 
    <thead> 
     <tr> 
      <% 
      for(int q = 1; q<=metaData.getColumnCount();q++) 
      {%> 
       <th><%= metaData.getColumnName(q)%></th> 
      <% 
      } 
      %> 
     </tr> 
    </thead> 
    <tbody> 
      <% 
      while(rs.next()) 
      { 
      %> 
       <tr> 
       <% 
       for(int i = 1; i<=metaData.getColumnCount();i++) 
       {%> 
        <td><%= rs.getString(i)%></td> 
       <% 
       } 
       %> 
       </tr>     
      <% 
      } 
      %> 
    </tbody> 
</table> 

所以在這裏我提出到數據庫的連接,並在jsp執行查詢 - 我知道這是不好的做法,但我找不出任何其他方式

了在標題中,我有我的js

$(function() { 
    $("#example").dataTable({ 
     "sScrollY": "400px", 
     "bPaginate": false, 
     "bScrollCollapse": true 
    }); 
} 

我認爲正確的做法是使用我的控制器中的JDBCTemplate - 但我不確定如何引用我的.jsp文件中的數據。

我的目標是再次有一個表(datatables jquery插件),並根據用戶與jsp頁面,按鈕,文本輸入等等的交互進行表更新。

有一種方法insude數據表API - fnDraw()應該重繪表,但我不知道該把函數放在哪裏。

謝謝