2013-07-16 61 views
0

我有一個Spring MVC應用程序,但我使用Kendo UI創建視圖。我需要用model.attribute中的數據填充表格,然後在表格中添加一個更改函數,以便在選擇更改時調用它。 我可以用數據填充表就好了,但是當我選擇一行我得到以下錯誤:具有Spring MVC模型屬性的Kendo UI DataSource

Uncaught TypeError: Cannot call method 'bind' of undefined. 

當代碼到達這條線這是拋出:

$("#pTable").data("kendoGrid").bind("change", function() { 

我打電話控制器並將屬性passengers添加到模型中,pTable是我想要用於在passengers中找到的數據的表的ID。

我的JSP文件:

<%@ page language="java" contentType="text/html; charset=UTF-8" 
    pageEncoding="UTF-8"%> 
<%@ include file="/include.jsp"%> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
<title>Airline Database</title> 

<link href="../styles/kendo.common.min.css" rel="stylesheet"> 
<link href="../styles/kendo.default.min.css" rel="stylesheet"> 

<script src="../js/jquery.min.js"></script> 
<script src="../js/jquery-migrate-1.2.1.js"></script> 
<script src="../js/kendo.all.min.js"></script> 

</head> 
<body> 
    <kendo:splitter name="pHorSplit"> 
     <div id="pShow"> 
     <kendo:grid name="pTable" selectable="true" sortable="true" filterable="true" pageable="false"> 
      <kendo:grid-columns> 
       <kendo:grid-column title="Passenger ID" field="passengerID"/> 
        <kendo:grid-column title="Name" field="name"/> 
        <kendo:grid-column title="Passport" field="passport"/> 
        <kendo:grid-column title="Email" field="email"/> 
       </kendo:grid-columns> 
      <kendo:dataSource data="${passengers}"></kendo:dataSource> 
     </kendo:grid> 
     </div> 
     <div id="pControl"> 
      //... 
     </div> 
    </kendo:splitter> 
    <script type="text/javascript"> 
     $("#pTable").data("kendoGrid").bind("change", function() { 
      //... 
     }); 
    </script> 
</body> 
</html> 

我也試圖與定義數據源模式,但我得到了同樣的結果。 誰能告訴我爲什麼數據加載到表中,但在任何其他場合未定義?

回答

0

我想出了答案,而不是使用bind方法,我在kendo:grid標記中聲明瞭change="onChange",並且我在同一個jsp文件中實現了onChange方法。

0

這樣看來,您的來電:

$("#pTable").data("kendoGrid").bind("change", function() { 
     //... 
    }); 

應被放置在一個處理器中的文檔準備事件:

$(function() { 
    $("#pTable").data("kendoGrid").bind("change", function() { 
     //... 
    }); 
}); 
+0

我之前試過和數據仍然不確定 – frauneworld

相關問題