javascript - JQWidgets - Jqxgrid "no data to display",JSON 解析错误

标签 javascript json jsp jqxgrid jqwidget

我按照这个例子的步骤(http://www.jqwidgets.com/jquery-widgets-documentation/documentation/java-integration/bind-jquery-grid-to-mysql-database-using-jsp.htm),但是没有数据显示。

jqxgrid.jsp文件:

ResultSet result = state.executeQuery(sql1);
JsonArray recordsArray = new JsonArray();
while (result.next()) {
    JsonObject currentRecord = new JsonObject();
    currentRecord.add("id",
            new JsonPrimitive(result.getString("id")));
    currentRecord.add("name",
            new JsonPrimitive(result.getString("name")));
    recordsArray.add(currentRecord);
}

out.print(recordsArray);
out.flush();

在jsp文件中我可以得到JsonArray的结果:

[{"id":"57","name":"aa"},{"id":"58","name":"qq"},{"id":"59","name":"ii"},{"id":"60","name":"jenny"},{"id":"61","name":"candy"},{"id":"62","name":"f"},{"id":"63","name":"pp"},{"id":"66","name":"kkk"}]

jqxgrid.html文件:

 $(document).ready(function () {
        
        var source = {
            datatype: "json",
            datafields: [{name: 'id'}, 
                         {name: 'name'}],
           url:"jqxgrid.jsp"
        };
       
        var dataAdapter = new $.jqx.dataAdapter(source, {
            downloadComplete: function (data, status, xhr) { },
            loadComplete: function (data) { },
            loadError: function (xhr, status, error) {alert('Status ='+ status +',  Error ='+ error ); }
        });
        $("#jqxgrid").jqxGrid({
            width: 400,
            autoheight: true,
            source: dataAdapter,
            columns: [{
                text: 'ID',
                datafield: 'id',
                width: 200
            }, {
                text: 'Name',
                datafield: 'name',
                width: 200
            }]
        });
    });

输出中有网格,但没有显示数据。 (抱歉,我无法发布图片。)

出现错误:

Status =parsererror, Error =SyntaxError: JSON Parse error: Unrecognized token '<'

我该如何解决这个问题?谢谢!

最佳答案

我认为您的问题是您没有输入源数据描述(客户端)。第 4 条记录的 ID 是 60,恰好是 < 字符。文档说 type 是必填字段(尽管他们的示例并不总是使用它。)

如果您将类型 datafields:[{name:'id',type:'int'}, 添加到 var source = { 这可能会解决您的问题。您还可以使用 'number' 作为 id 的类型。将 'string' 类型添加到 name 字段也可能是值得的。

希望这对你有用。

关于javascript - JQWidgets - Jqxgrid "no data to display",JSON 解析错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30415157/

相关文章:

javascript - 确保表单在不使用 javascript 或 jquery 的情况下永远不会提交

javascript - 用状态 rgb react 设置背景颜色

javascript - 将 Div 内容保存为服务器上的图像

javascript - window.onunload 在 IE 9/10/11 中不起作用?

javascript - 在 JavaScript 中生成 HTML 与加载 HTML 文件

java - 为 double 组获取 Collections.shuffle() 时出现问题

javascript - 无法从 Kendo Window 中的内容关闭窗口

java - 使用 JSP 将图像上传到磁盘上的特定文件夹

json - @ResponseBody 不使用 Hibernate Call 生成 json

javascript - 根据本地存储中的列表过滤 ng-repeat