0

我有一个 Spring MVC 应用程序,但我正在使用 Kendo UI 创建视图。我需要用 model.attribute 中的数据填充一个表,然后向表中添加一个更改函数,以便在选择更改时调用它。我可以很好地用数据填充表格,但是当我选择一行时,我收到以下错误:

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

当代码到达这一行时抛出它:

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

我调用 Controller 并将属性添加passengers到模型中,pTable这是我要用于在passengers.

我的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>

我也尝试定义 dataSource 模式,但得到了相同的结果。谁能告诉我为什么数据被加载到表中但在任何其他场合未定义?

4

2 回答 2

0

我想出了答案,我没有使用bind方法,而是change="onChange"kendo:grid标签中声明,并onChange在同一个jsp文件中实现了该方法。

于 2013-07-16T09:53:04.387 回答
0

您的电话似乎是:

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

应放置在文档就绪事件的处理程序中:

$(function() {
    $("#pTable").data("kendoGrid").bind("change", function() {
        //...
    });
 });
于 2013-07-16T15:40:43.233 回答