2012-10-17 23 views
2

我正在使用play 1.2.5。在我的觀點之一,我有一個數據表,在這是一列是可編輯的。爲此,我使用jquery.dataTables.js和jquery.jeditable.js插件。在ajax視圖中使用jeditable的Playframework

現在,當我向字段中輸入新值時,我遇到了ajax調用的問題。我創建了一個應該在每次編輯行時調用的操作,但這不起作用。行動不會被調用,有人可以看到我的錯誤?

感謝

這裏是我的行動,首先我要看到其被稱爲

public static void configurationChange(SendAllSysParameter para){ 
    Logger.info("incoming configuration change", null); 
    } 

這是我的觀點:

#{extends 'main.html' /} 

#{set title:'Sendall Configuration Page' /} 

#{script 'jquery.dataTables.js'/} 
#{stylesheet 'demo_page.css' /} 
#{stylesheet 'jquery.dataTables.css' /} 
#{script 'jquery.jeditable.js' /} 

<div class="pdx_std_north_panel"> 
    <table id="table_id" class="display"> 
    <thead> 
     <th>Property</th> 
     <th>Value</th>  
    </thead> 
    <tbody> 
     #{list items:paras, as:'elem' } 
     <tr id="${elem.sendAllKey}"> 
      <td id="${elem_index}">${elem.sendAllKey}</td> 
      <td id="${elem_index}">${elem.sendAllValue}</td>         
     </tr>  
     #{/list} 
    </tbody>  
    </table>   
    <script type="text/javascript"> 

     $(document).ready(function(){ 
      var oTable = $('#table_id').dataTable(); 
      //alert("Test2"); 
      var configurationChangeRoute = #{jsRoute @Application.configurationChange(':element') /}; 
      console.log('configurationChangeRout mit jsRoute-Tag: ' + configurationChangeRoute.url); 
      var configurationChangeAction = #{jsAction @Application.configurationChange(':element')/}; 
      console.log('configurationChangeAction mit jsActionTag: ' + configurationChangeAction); 
      //alert(configurationChangeRoute.url); 
      //alert(configurationChangeAction); 
      /* Apply the jEditable handlers to the table */ 
      $('td:eq(1)', oTable.fnGetNodes()).editable(configurationChangeAction, { 

       "callback": function(sValue, y) { 
        console.log('callback with svalue ' + sValue + ' and y ' + y); 
        var aPos = oTable.fnGetPosition(this); 
        oTable.fnUpdate(sValue, aPos[0], aPos[1]); 
       }, 

       "submitdata": function (value, settings) { 
        console.log('submitdata'); 
        return { 
         "row_id": this.parentNode.getAttribute('id'), 
         "column": oTable.fnGetPosition(this)[2] 
        }; 
       }, 
       "height": "14px" 
      }); 

而且我的模型:

package models; 

import java.sql.Timestamp; 

import javax.persistence.Column; 
import javax.persistence.Entity; 
import javax.persistence.Id; 
import javax.persistence.Table; 

import play.db.jpa.GenericModel; 
import play.db.jpa.Model; 

@Entity 
@Table(name="SendAll_SysParameter") 
public class SendAllSysParameter extends GenericModel 
{ 

    @Id 
    @Column(name = "sendAllKey", unique = true, nullable = false) 
    public String sendAllKey; 

    @Column(name = "sendAllValue") 
    public String sendAllValue; 

    @Column(name = "sendAllDate", nullable = false, length = 23) 
    public Timestamp sendAllDate; 

} 
+1

我發現這個問題,我宣佈路由到我的ajax網址爲GET,但它是POST,所以它沒有被發現。錯誤日誌是正確的;-) –

+0

請添加,作爲答案,並接受它:) –

回答

1

我發現了問題,我宣佈作爲GET的我的ajax url的路由,但它是POST,所以它沒有被發現。錯誤日誌是正確的;-)